Language/SQL
내장형 H2 데이터베이스 사용
용용띠용
2025. 6. 26. 17:53
방식 3가지
Mode | H2 다운로드 여부 | 실행 주체 | DB 저장 위치 |
Server Mode | O | 외부 | 로컬(파일 시스템) |
In-Memory Mode | X | 스프링 | 메모리 |
Embedded Mode | X | 스프링 | 로컬(파일 시스템) |
1) Server Mode
: 직접 엔진 설치해 사용한다.
- 외부 db 엔진이 구동된다.
- 애플리케이션 외부에 데이터가 저장되어 애플리케이션 종료 시에도 데이터가 유지된다.
2) In-Memory Mode
: 엔진을 설치하지 않고 애플리케이션 내부 엔진을 사용한다.(애플리케이션에 DB 엔진 내장)
- build.gradle 및 application.properties 설정을 통해 실행 가능하다.
# application.yml
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:{DB 이름}
username: sa
password:
# application.properties
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:{DB 이름}
spring.datasource.username=sa
spring.datasource.password=
- 애플리케이션과 DB 엔진이 함께 실행, 종료된다.
- 애플리케이션 메모리에 데이터가 저장되어 애플리케이션 종료 시 데이터가 사라진다.
=> 단위 테스트 등에서 많이 사용한다.
3) Embedded Mode
: 엔진을 설치하지 않고 애플리케이션 내부 엔진을 사용한다.
- build.gradle 및 application.properties 설정을 통해 실행 가능하다.
# application.yml
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:{DB가 저장될 경로}
username: sa
password:
# application.properties
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:~/testdb // 경로를 ~/testdb로 설정한 예시로 ~는 홈 디렉터리를 의미하며 홈 디렉터리 아래 testdb.mv.db파일로 저장된다.
spring.datasource.username=sa
spring.datasource.password=
- 애플리케이션과 DB 엔진이 함께 실행, 종료된다.
- 애플리케이션 외부에 데이터가 저장되어(로컬) 애플리케이션 종료 시에도 데이터가 유지된다.
=> 간단한 애플리케이션에 적합하다.