카테고리 없음

[SpringBoot]H2 Database (in-memory)

codi-3 2024. 9. 26. 20:47

H2 Database는 Java 애플리케이션에서 주로 사용되는 가벼운 임베디드형 관계형 데이터베이스 이다. In-memory 모드파일 기반 모드를 지원하며, 주로 개발 및 테스트 환경에서 빠르고 간편하게 데이터베이스를 사용하기 위해 많이 활용된다. Spring과 함께 H2를 사용하면, 설정을 통해 애플리케이션 시작 시 데이터베이스를 메모리 내에 생성하고 애플리케이션 종료 시 자동으로 삭제할 수 있어 개발 및 테스트에 매우 유용하다.


 

H2 Database

  • 가벼움: H2는 메모리 내에서 실행되며 파일 기반 데이터베이스로도 동작할 수 있지만, 주로 개발, 테스트 환경에서 빠르게 DB 설정 없이 사용할 수 있어 유용하다.
  • In-memory 모드: 이 모드는 DB를 메모리에만 저장하여, 애플리케이션이 종료되면 데이터가 휘발됩니다. 주로 테스트 목적으로 사용된다.
  • SQL 지원: 표준 SQL을 지원하며, 개발자가 손쉽게 데이터베이스에 질의하고 관리할 수 있다.

Spring과 H2 Database 연동

Spring Framework에서는 데이터베이스 설정을 단순화하기 위해 H2 Database와 쉽게 연동할 수 있다. 특히 Spring Boot를 사용하면, 몇 가지 설정만으로 H2를 임베디드 데이터베이스로 사용할 수 있다.

설정 방법

  1. 의존성 추가: build.gradle 또는 pom.xml에 H2와 관련된 의존성을 추가한다.
dependencies {
    implementation 'com.h2database:h2'
}

 

application.properties 또는 application.yml 설정

H2 데이터베이스를 Spring Boot 애플리케이션에서 임베디드 모드로 사용하는 경우 application.properties 또는 application.yml 파일에 다음과 같이 설정할 수 있다.

 

application.properties:

spring.datasource.url=jdbc:h2:mem:testdb  # 메모리 모드
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true  # H2 웹 콘솔 활성화

 

 

application.yml:

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driverClassName: org.h2.Driver
    username: sa
    password: 
  h2:
    console:
      enabled: true

 

H2 Console 사용:

  • Spring Boot는 H2 웹 콘솔을 제공하여 브라우저에서 데이터베이스 상태를 직접 확인하고 쿼리를 실행할 수 있다. 위 설정에 따라 /h2-console 경로로 접근하여 콘솔을 사용할 수 있습니다.
  • http://localhost:8080/h2-console로 접속 후 JDBC URL에 jdbc:h2:mem:testdb 또는 application.yml에 입력한 url값을 입력하고 로그인할 수 있다.