백엔드

『JAVA ORM 표준 JPA 프로그래밍』2장. 실습 준비 - H2 DB 설치하기

오늘의 나1 2022. 2. 9. 09:06

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로 접속하는 것인지 헷갈린다.
  • 임베디드모드는 실행하려면 다른 애플리케이션의 프로세스에 기생해야 하는 것일까? 파일로 접속하면 임베디드모드인가?