H2가볍고 빠르며 다양한 방식으로 활용할 수 있는 데이터베이스 관리 시스템(DBMS)

주로 다음 세 가지 모드로 사용할 수 있다.

  1. Server Mode
  2. In-memory Mode
  3. Embedded Mode

1. Server Mode

서버 모드는 실제 운영 환경에서 주로 사용하는 방식.

H2 DB 엔진을 서버로 설치하여 애플리케이션과 분리해서 사용할 수 있다.

여러 애플리케이션이 동일한 DB를 공유할 수 있다는 장점이 있다.

H2 DBMS는 공식 사이트에서 다운로드할 수 있다.

특징

  • H2 다운로드 필요
  • 외부 서버에서 실행
  • 데이터는 로컬 파일 시스템에 저장
  • 배포용으로 적합

2. In-memory Mode

인메모리 모드는 애플리케이션과 함께 실행되며, 데이터가 메모리에 저장되는 방식.

애플리케이션이 종료되면 데이터도 함께 사라지는 휘발성 특징이 있어 주로 단위 테스트용으로 많이 사용된다.

설정 예시

# 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=

특징

  • H2 다운로드 불필요
  • 애플리케이션 내에서 실행
  • 데이터는 메모리에 저장
  • 테스트용으로 적합

3. Embedded Mode

임베디드 모드는 인메모리 모드와 유사하지만, 데이터가 로컬 파일 시스템에 저장된다.

따라서 애플리케이션이 종료되더라도 데이터는 유지됩니다. 간단한 애플리케이션 개발에 적합하다.

설정 예시

# 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=

특징

  • H2 다운로드 불필요
  • 애플리케이션 내에서 실행
  • 데이터는 로컬 파일 시스템에 저장
  • 개발용으로 적합

비교 표

Mode H2 다운로드 여부 실행 주체 DB 저장 위치 사용 용도
Server Mode O 외부 로컬(파일 시스템) 배포 용도
In-Memory Mode X 애플리케이션 메모리 테스트 용도
Embedded Mode X 애플리케이션 로컬(파일 시스템) 개발 용도

이렇게 H2 데이터베이스를 다양한 방식으로 사용할 수 있으며, 각 모드는 목적에 맞게 설정하여 활용할 수 있다.

'🗂️ Study > 🌿Spring' 카테고리의 다른 글

트랜잭션 (Transaction)  (0) 2024.06.27
JWT(Json Web Token)  (0) 2024.05.28
쿠키 & 세션  (0) 2024.05.28
인증(Authentication) & 인가(Authorization)  (0) 2024.05.28
Query Methods  (0) 2024.05.21