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

Posted by , June 22, 2019
Spring BootH2
Series ofSpring_SpringBoot

주의

이 문건은 과거 Hexo 블로그 (2019-06-22) 에서 이동된 문서입니다.

시간이 지남에 따라 최신 기술과 다를 수 있으니 주의 바랍니다.


thumbnail


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

정말 오랜만에 포스팅을 남긴다.
이직 후 블로그를 정리할 시간도 없이 다양한 프로젝트를 진행하였다.
하면서 쌓은 경험들이나 작성할 것들이 Notion에 산더미처럼 쌓여있다.
이제부터 하나씩 정리를 하면서 포스팅을 다시 열심히 해볼 예정이다.
각설하고...
첫 포스팅은 H2 데이터베이스를 붙여보는 부분이다.


H2?

H2는 자바 기반의 RDBMS이다.
브라우저 콘솔 지원, 저용량 (2MB), JDBC API 지원 등 다양한 장점을 가지고 있다.
이런 장점들 덕에 테스트 DB로 많이 쓰인다.
나도 포스팅을 하면서 JPA 등을 테스트 하기 위해 H2를 설정을 하였는데 이번 포스팅에서는 이 H2를 Spring boot에 붙이는 것에 대해 알아보려 한다.
H2에 대해 더 알고 싶은 분은 공식 홈페이지를 참고하자.


How to install?

먼저 진행 환경은 아래와 같다. IntelliJ + Spring boot 2.1.6 + Gradle

처음 프로젝트를 진행한다면 Spring initializr를 통해서 손쉽게 추가할 수 있다.

img 01

위 이미지 처럼 이니셜라이즈에서 의존성을 쉽게 추가할 수 있다.
물론 기존의 프로젝트가 있다면 아래의 코드를 build.gradle에 추가해준다.

runtimeOnly 'com.h2database:h2'

프로젝트의 설정 파일(application.yml 등)에 아래와 같이 작성해준다.

server:
  port: 8099  # Spring boot Server port

spring:
  h2:
    console:
      enabled: true  # H2 웹 콘솔을 사용하겠다는 의미
      path: /test_db  # 콘솔의 경로

  datasource:
    driver-class-name: org.h2.Driver  #h2 드라이버 설정
    url: jdbc:h2:file:~/Develop/Github/SpringBlogExam/test_db;AUTO_SERVER=TRUE  #접속 URL
    username: test  # 사용자 이름 (로그인 시 사용)
    password: 1234  # 사용자 암호 (로그인 시 사용)

여기서 datasource의 url의 경우 설명을 간략하게 하면 아래와 같다.

  • jdbc:h2:file
    • file로 DB를 관리하겠다는 뜻
  • ~/.../test_db
    • 현재 설정된 경로에 test_db 라는 이름으로 데이터베이스를 생성 (해당 경로에 파일이 생성도니다.)
  • AUTO_SERVER
    • 다중 접속을 허용하겠다는 의미 (인메모리에서는 미 사용)

이렇게 설정 후 Spring boot를 실행하고 브라우저에 url을 입력하여 접속하면 아래와 같은 화면이 뜬다.
(URL의 경우 위 설정을 예시로 하면 http://localhost:8099/test_db/ 이다.)

img 02

아마 콘솔의 JDBC URL의 경우 사진과 다를텐데 yml에 작성한 url로 맞춰주자.
그리고 계정 비번의 정보(위 설정 파일 참고)를 입력하면 콘솔에 접속할 수 있다.


정리

일단 이번 포스팅에서는 가볍에 Spring boot에서 h2를 사용하는 방법에 대해 작성하였다.
다음 포스팅에서는 h2에 테스트 데이터를 넣는 것과 기타 추가 사항에 대해 포스팅을 할 예정이다.