Engineering Note

[Database] H2 다운로드 및 실행방법과 실행 모드 본문

Computer Science/Database

[Database] H2 다운로드 및 실행방법과 실행 모드

Software Engineer Kim 2025. 10. 7. 17:39

학습을 위해 인프런 강의를 듣다가 h2 데이터베이스 접속 방법이 매번 헷갈려서 정리해두려고 작성한 글이다.

 

1.H2 다운로드 및 실행방법

 

1-1. H2 데이터베이스 엔진 DBMS를 다운로드 한다.

https://www.h2database.com/html/main.html

 

1-2. 다운로드 하고 압출을 풀어주면 안에 bin 디렉터리가 있는데 그 안에 h2.sh 파일이 있다.

 

1-3. h2.sh 파일의 권한을 준다. 'chmod 755 h2.sh`. 권한 변경 후  실행(터미널에서 './h2.sh ' 입력)하면 브라우저에 h2데이터베이스 접속을 위한 웹 콘솔이 열린다.

 

1-4. h2 데이터베이스는 메모리모드와 파일모드가 있는데, 데이터를 유지하기 위해서 파일모드로 실행하고 싶으면 파일 모드로 실행하면 된다. 웹 콘솔에 접속해서 최초 한 번 연결을 해주면 데이터베이스 파일이 생성된다. 

 

1-5. jdbc URL에 아래 그림처럼 `jdbc:h2:~/querydsl' 을 입력해주고 연결하면 루트(~)디렉터리에 querydsl.mv.db라는 파일이 생성된다.

 

 

1-6. 그다음 다시 연결은 종료하고 연결 방식을 네트워크 접속 방식으로 바꿔주어야 한다. 파일모드로 접속하면 동시접속이 안되기 때문에 애플리케이션과 브라우저 콜솔로 동시에 DB에 접속할 수 없다. 

 

1-7. tcp 네트워크 접속 방법

아래는 h2 데이터베이스의 실행 모드 원리를 정리한 내용이다. h2 데이터베이스는 크게 저장 방식과 접속 방식의 관점에서 실행 모드를 이해할 수 있다.

 

 

2. H2 실행 모드 이해하기

H2는 저장 방식접속 방식 2가지 축으로 구성됩니다.

저장 방식 (어디에 저장?)

파일 모드

 
 
java
jdbc:h2:~/test
  • 디스크에 영구 저장
  • 재시작해도 데이터 유지
  • test.mv.db 파일 생성

메모리 모드

 
java
jdbc:h2:mem:test
  • RAM에만 저장
  • 종료 시 데이터 삭제
  • 빠른 속도, 테스트용

 

 

접속 방식 (어떻게 접속?)

임베디드 모드

 
 
java
jdbc:h2:~/test
  • 앱 내부에서 직접 접속
  • 하나의 앱만 사용 가능
  • 가장 빠름

서버 모드

 
java
jdbc:h2:tcp://localhost/~/test
  • 별도 서버로 실행
  • 여러 앱 동시 접속 가능
  • 네트워크 통신

혼합 모드

 
 
java
jdbc:h2:~/test;AUTO_SERVER=TRUE
  • 첫 접속은 임베디드, 추가 접속 시 자동으로 서버 모드
  • 가장 편리함

 

 

참고 사항 

 

만약 이미 h2데이터베이스가 설치되어 있다면 아래 명령어로 찾을 수 있다.

find ~ -name "h2.sh" 2>/dev/null

 

2:linux/unix/mac 계열 표준 에러메세지를 의미하는 번호입니다.
>:리다이렉트

/dev/null : 데이터를 저장하지 않고 버린다는 의미

 

'권한이 없다'등 에러메세지를 표시하지 않고 파일을 찾기위해 지정하는 명령어입니다.

Comments