목차
H2 데이터 베이스
정의
자바로 작성된 경량화된 오픈 소스 관계형 데이터 베이스 관리 시스템입니다.
특징
- H2는 자바로 작성되어 있어 Java 애플리케이션에 쉽게 임베드 할 수 있습니다.
- 용량이 작아, 주로 개발 및 테스트 환경에서 사용되며, 별도의 설치 없이 사용할 수 있습니다.
- 기본적으로 메모리 기반으로 데이터를 관리하여 속도가 빠릅니다. 하지만 애플리케이션 재시작 시 데이터가 초기화되는 특징이 있습니다.
3가지 방식
1. Server Mode
- 애플리케이션과 DB가 분리되어 있기 때문에 여러 애플리케이션에서 동일한 DB를 사용하기에 적합합니다
- 따라서 외부 컴퓨터에 DB 엔진을 설치하고 엔진을 구동하여 사용합니다. (현업 방식)
2. In-Memory Mode
- 애플리케이션에 DB 엔진이 내장되어 애플리케이션과 함께 실행되고 종료되는 방식입니다.
- 데이터가 애플리케이션의 메모리에 저장되기 때문에, 애플리케이션 종료 시 모든 데이터가 사라지는 휘발성의 특징을 갖습니다.
- Spring Boot 내에서 인메모리 모드로 사용하려면 `application.yml` 또는 `application.properties`에서 아래와 같이 설정을 해줘야 합니다.
# application.yml
spring:
datasource:
driver-class-name: org.h2.Driver
url: 'jdbc:h2:mem:{DB 이름};DB_CLOSE_DELAY=-1'
username: sa
password:
# application.properties
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url='jdbc:h2:mem:{DB 이름};DB_CLOSE_DELAY=-1'
spring.datasource.username=sa
spring.datasource.password=
- `DB_CLOSE_DELAY` : 데이터베이스가 언제 닫힐지를 제어합니다.
- `-1` : 애플리케이션이 실행되는 동안 데이터베이스를 열린 상태로 유지합니다.
3. Embeded Mode
- 인메모리 모드와 동일하게 애플리케이션에 DB 엔진이 내장되어 애플리케이션과 함께 실행되고 종료되는 방식입니다.
- 데이터를 로컬에 저장하기 때문에 데이터 휘발에서 자유롭습니다.
- Spring Boot 내에서 임베디드 모드로 사용하려면 `application.yml` 또는 `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:{DB가 저장될 경로}
spring.datasource.username=sa
spring.datasource.password=
- 파일 형태로 DB가 저장될 경로를 넣어주시면 됩니다.
- 이렇게 `test.mv` 파일로 저장됩니다.
정리하기
Mode | H2 다운로드 여부 | 실행 주체 | DB 저장 위치 | 사용 용도 |
Server Mode | O | 외부 | 로컬(파일 시스템) | 배포 용도 |
In-Memory Mode | X | Spring | 메모리 | 테스트 용도 |
Embedded Mode | X | Spring | 로컬(파일 시스템) | 개발 용도 |
https://www.h2database.com/html/main.html
H2 Database Engine
H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp
www.h2database.com
'Spring' 카테고리의 다른 글
[Spring] Formatter (0) | 2025.06.11 |
---|---|
[Spring] 파라미터 변환을 위한 Convert 생성 및 등록 방법 (0) | 2025.06.08 |
[Spring] Custom HttpMessageConvert 생성 & 등록을 위한 WebMvcConfigurer 활용 (0) | 2025.06.06 |
[Spring] Spring MVC, RequestMappingHandlerAdapter의 요청 및 응답 처리 과정 : HttpMessageConverter (0) | 2025.06.06 |
[Spring] Spring MVC, RequestMappingHandlerAdapter의 요청 및 응답 처리 과정 : ArgumentResolver & ReturnValueHandler란? (0) | 2025.06.05 |