H2 DB
- 인메모리 DB로 실행할 수 있다.
인메모리 vs 임베디드 vs 서버
- 디스크 DB vs 인메모리 DB <— 데이터를 어디에 저장하는 지
- 임베디드 모드 vs 서버 모드 <— 독립적인 프로세스를 띄워서 실행하는 지?
설치 및 실행
- H2 DB 웹페이지에서 h2 zip 파일을 다운로드 받고 압축을 푼 뒤 h2.sh를 실행
서버모드로 접속
- JDBC URL: jdbc:h2:tcp://localhost/~/test
- tcp:// TCP로 접속
- localhost: 기본 포트가 8082
- ~/test: 루트디렉토리의 test DB (파일명 test.mv.db)
- 임베디드 모드(파일경로)로 접속할 때, DB가 없으면 DB파일을 생성한다. (파일 확장자: *.mv.db)
- 서버 모드(TCP)로 접속할 때, DB가 없으면 DB파일을 생성하지 않는다. - 아마 추가설정이 필요한 것 같다.
- 따라서, H2 DB를 로컬에서 처음 실행하고, TCP로 접속하려는 경우, DB 생성을 위해 임베디드 모드로 한 번 접속이 필요하다.
헷갈리는 것
- 인메모리/서버모드/임베디드 모드가 아직 헷갈린다.
- JDBC URL에 인메모리 모드(:mem)를 명시하는 게 있는 데, 인메모리 모드로 접속하지 않으면 디스크에 저장되는 건가?
- 서버모드가 내 로컬에서 H2 DB를 TCP로 실행하는 것인지, TCP로 접속하는 것인지 헷갈린다.
- 임베디드모드는 실행하려면 꼭 다른 애플리케이션의 프로세스에 기생해야 하는 것일까? 파일로 접속하면 임베디드모드인가?
'백엔드' 카테고리의 다른 글
타임존과 날짜 다루기 (0) | 2022.04.14 |
---|---|
『JAVA ORM 표준 JPA 프로그래밍』1장~3장 (0) | 2022.03.04 |
[번역글] 스프링부트에서 JWT와 소셜로그인 (0) | 2021.11.25 |