[DB/H2] H2 (In-Memory DB)
H2는 Java 기반의 오픈소스 RDBMS다.
H2의 특징은 다음과 같다.
- Server 모드, Embeded 모드의 in-memory 기능을 지원한다. ( 디스크 기반의 테이블 또한 지원한다. )
- 브라우저 기반의 콘솔모드를 사용할 수 있다.
- 별도의 설치과정이 필요없고, 용량도 약 2MB로 매우 가볍고 빠르다.
- JDBC API를 지원한다.
특징을 보면 알겠지만, 매우 가볍게 돌릴 수 있다는 점에서 애플리케이션 개발에서 테스트 DB로 많이 사용된다.
H2 실행하기
H2를 다운받은 후, bin/h2.bat를 실행하면 프로세스가 실행된다. ( Unix 플랫폼은 h2.sh를 실행한다. )
localhost:8082 로 접속해보면 H2 콘솔로 들어가지는데, 여기서 설정을 해주면된다.
여기서 기본 값으로 놔두고 [연결] 버튼을 누르면 홈 디렉터리에 'test' DB를 자동으로 만들어줄거라 생각했지만,
다음과 같은 에러 발생. test DB를 찾을 수 없어서 발생한 에러다. ( 하긴 원격으로 내 홈 디렉터리에 파일을 생성하려면 권한이 필요하겠지 ? )
먼저 네트워크 모드가 아닌, 임베디드 모드를 통해 test DB를 생성해주자.
JDBC URL : jdbc:h2:~/test 로 수정한 후, [연결] 버튼을 누른다.
그러면, 브라우저에서 데이터베이스 연결화면을 띄워준다.
홈 디렉터리를 확인해보면, 아래와 같이 'test.mv.db' 파일이 생성된걸 확인할 수 있다.
Embeded 모드를 통해 test DB 파일을 생성했으므로, 다음에 접속할 때는 tcp로 접속이 가능하다.
IntelliJ의 내장 Database에 등록하기
IntelliJ에서 [View] - [Tool Windows] - [Database]를 클릭하면 아래와 같은 화면이 나오는데, + 버튼을 클릭한다.
참고자료
[1] https://stackoverflow.com/questions/29155350/jpa-cannot-resolve-column-intellij
[2] http://homoefficio.github.io