H2 데이터베이스(이하 H2)
는 Java 기반 오픈소스 관계형 데이터베이스입니다. 가볍고 빠르다는 최고의 장점을 가지고 있어서 주로 개발 환경이나 로컬 테스트를 수행하는 경우에 사용됩니다.
H2
는 다음과 같은 특징을 가지고 있습니다.
임베디드 모드와 서버 모드 두 가지의 모드를 지원한다고 했는데요. 두 모드는 다음과 같은 차이점이 있습니다.
- 임베디드 모드: 애플리케이션 내에서 실행되는 방식. 파일 또는 메모리에 데이터가 저장됨
- 서버 모드: 독립된 서버처럼 실행되는 방식. 여러 클라이언트가 접근 가능
https://www.h2database.com/html/main.html
공식 페이지에 들어가서 All Platforms의 .zip 파일을 다운로드 받습니다.
압축을 해제하면 위와같은 파일들이 들어있습다.
여기서
bin\h2.bat
를 실행하면 서버 모드로 H2 데이터베이스가 실행됩니다.
Windows 환경에서는
.bat
, Linux 환경에서는.sh
를 실행하시면 됩니다.
실행을 하게되면 브라우저에 새 탭에 H2 콘솔이 열리게 됩니다.
일단 다른 항목 건드릴 필요 없이 연결 시험 눌러보고 연결 성공
이 뜨면 연결 버튼을 누릅니다.위 경로 Windows 기준으로
C\Users\사용자명\test.mv.db
를 의미합니다. 실제로 경로에 접속했을때 다음과 같이 파일이 존재한다면 H2 데이터베이스가 정상 작동되었음을 의미합니다.
Member라는 테이블은 예제를 위해서 잠깐 만들어뒀던 거라 아예 처음 시작하면 없는게 맞습니다.
브라우저 웹 콘솔에서는
표준 SQL
을 사용합니다. H2에서 제공하는 독자적인 쿼리도 있긴한데요. 이 부분은 공식 페이지에서 열람할 수 있습니다.
지금은 임베디드 모드로 설정했는데요. 서버 모드로 전환하는 방법은 좌상단의 연결 끊기를 한 후 다시 첫 접속 화면으로 돌아가서 설정을 Server 모드로 변경한 후 재접속하면 됩니다.
서버 모드로 변경을 마쳤으면 다음과 같이 application.yml
을 작성해줍니다.
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/test
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
path: /h2-console
jpa:
hibernate:
ddl-auto: create
show-sql: true
properties:
hibernate:
format_sql: true
show_sql: true