H2 DB 설정
Last updated
Last updated
H2 DB는 컴퓨터에 내장된 램(RAM) 메모리에 의존하는 자바 기반의 RDBMS이다. 용량이 적고, 브라우저 기반의 콘솔 등을 지원해 장점이 많다. 또한, SpringBoot에서 별도 DB를 설치하지 않고 바로 사용할 수 있는 것도 장점이다. 메모리 데이터베이스로 보통 테스트용으로만 쓰인다.
H2 의존성을 build.gradle
에 추가해준다. runtimeOnly
로 런타임시점에만 의존하도록 변경해 주었다.
빈을 등록해 H2 콘솔을 사용할 수 있으나, 스프링 부트 자동설정으로 H2를 설정할 수 있다.
스프링 부트 자동 설정 프로퍼티 문서를 살펴보면 다음과 같은 값이 있다.
spring.h2.console.enabled
는 콘솔 사용여부 값으로 false가 디폴트 값이며, 이 값을 true로만 변경하면 별도 빈 설정을 해주지 않아도 된다.
application.yml
)spring은 기본값으로 classpath 루트에 schema.sql
과 data.sql
파일이 있다면 서버 시작 시 스크립트를 실행한다.
src/main/java/resources/schema.sql
: 테이블 스키마(DDL)
src/main/java/resources/data.sql
: DML
위 두개 파일을 생성후 다시 서버를 재시작하면 schema.sql
의 MEMBER
테이블이 생성되었고, data.sql
에 선언된 데이터들도 추가된 것을 확인할 수 있다.
특정 환경에 맞는 SQL을 실행시키고 싶은 경우에는 프로퍼티 설정을 추가해주면된다.
그런후 플랫폼에 맞게 schema-{platform}.sql
, data-{platform}.sql
을 생성하면 해당 플랫폼 스크립트가 실행된다. 기본적으로는 메모리 DB가 아닌경우 스크립드 문을 실행시키지 않는다.
메모리 DB가 아닌 경우에도 실행시키고 싶다면 아래 프로퍼티를 always
로 설정해주면 된다.
초기화 설정을 하고싶지 않은 경우에는 never
설정을 하면된다.
로 들어가면 아래 창이 뜨고, 위에서 설정한 프로퍼티 값으로 로그인을 할 수 있다.