H2 Database URLs
H2 Database
H2는 자바 기반 오픈소스 RDBMS입니다. 서버 모드와 임베디드 모드의 인메모리 DB 기능을 지원합니다.
실행방법
설치하고 나면 기본 경로로 설정했다면, C:\Program Files (x86)\H2\bin
위치에 실행파일 h2.bat
이 생기고 H2를 실행해서 사용할 수 있습니다. (제 컴퓨터 OS는 현재 Window인 관계로 Window 기준으로 작성했습니다.)
실행 후에는 자동으로 브라우저로 H2 콘솔이 열리게 됩니다. localhost
로 연결하고 이 때 JDBC URL 대로 실행하면, C:\사용자\{사용자명}
위치에 DB파일 test.mv.db
이 생성되는 것을 볼 수 있습니다.
DB 파일이 생성된 후에는 파일모드가 아닌 tcp
를 이용한 네트워크 모드인 jdbc:h2:tcp://localhost/~/test
경로로 들어가지는 것을 확인할 수 있습니다.
왜 tcp모드를 사용하고 JDBC URL의 종류는 어떤게 있을까요?
처음 H2를 사용할 때, 가장 헷갈렸던 부분이라서 다시 톺아보기로 했습니다. H2는 다양한 연결방식을 지원합니다. 처음 설치 후 jdbc:h2:[file:][<path>]<databaseName>
기본으로 되어 있던 모드가 Embedded(Local) Database
로 사용하는 방식입니다. 이 때 해당 경로에 DB파일이 없는 경우에는 자동으로 생성되는데 이 때 권한이 있어야하며, 그 권한은 URL주소에 보면 jsessionid
키 값으로 권한이 부여됩니다.
DB 파일 생성 후에 사용했던 모드는 Remote
모드입니다. 이렇게 접근하는 이유는 직접 파일 접근을 막고, TCP 소켓을 사용한 접근으로 애플리케이션과 콘솔이 동시 접근했을 때의 오류를 방지하기 위함입니다. 이렇게 하면, 여러 명의 클라이언트가 같은 데이터베이스를 조회할 수 있습니다.
마지막은 In-Memory
방식입니다. DB 연결을 끊으면, 데이터가 사라지고 지속적이지 않기 때문에 test방식으로 추천되는 방식으로 private하게 사용하기 좋으며, jdbc:h2:mem:
로 url을 작성합니다.
Database URL Overview
H2, DB 파일 저장 경로는?
H2 Database 설치, 서버 실행, 접속 방법 (Windows, MacOS)