SpringBoot에서 H2 데이터베이스 사용하기

h2데이터 베이스란 컴퓨터에 내장된 램(RAM)메모리에 의존하는 데이터베이스 를 말한다. 램에 의존하기 때문에 테스트 또는 지금의 나처럼 실습을 위해서는 간편하고 빠르기 때문에 좋은 옵션이 될 수 있다.

다만, 램에 데이터를 저장하다보니 웹서버를 재부팅하면 기존의 데이터가 사라진다는 단점이 있다. 따라서 이 때엔 테스트에 필요한 데이터를 미리 sql로 작성해두고 웹서버 재부팅시마다 데이터를 인위적으로 주입하여 테스트 해볼 수 있다.

스프링부트 프로젝트에서 h2 데이터 베이스를 사용하는 방법은 다음과 같다.

의존성 설정

Maven

1
2
3
4
5
6
7
8
9
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>

Gradle

1
2
// https://mvnrepository.com/artifact/com.h2database/h2
testCompile group: 'com.h2database', name: 'h2', version: '1.4.200'

application.yml 설정

1
2
3
4
5
6
7
8
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

spring.datasource.url=jdbc:h2:~/test;
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

이제 데이터베이스가 사용가능하며, localhost:8080/h2-console 에서 대시보드를 이용할 수도 있다.

브라우저에서 h2-console에 접근할때 JDBC URL은 아까 application.properties에 작성한 URL을 입력하면 된다.