[H2 DB] H2 Database 사용법

gyeol·2025년 7월 2일
post-thumbnail

백엔드 개발을 하다보면 영속성이 필요한 정보를 저장해놓을 수 있는 공간이 필요합니다.
개발을 하며 보통 MySQL과 같은 데이터베이스를 많이 사용하지만 로컬 환경에서 개발하는 개발자들을 보면 H2 데이터베이스를 종종 사용하는 모습을 볼 수 있습니다.
그래서 이에 대해 자세히 알아보고자 합니다!

H2 데이터베이스란?

자바로 작성된 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다.
주로 로컬 개발 환경이나 테스트 환경에서 많이 사용된다.
저 같은 경우에는 스프링 프레임워크를 사용할 때 로컬 환경에서 종종 사용했습니다.

특징

  • JPA 파일 하나로 바로 실행 가능
  • 메모리 기반 DB(jdbc:h2:mem:...)와 파일 기반 DB(jdbc:h2:~/test) 모두 지원
  • 자바 프로젝트와 통합 용이
  • /h2-console 주소를 통해 브라우저에서 SQL 쿼리를 실행하고 데이터를 확인할 수 있는 GUI 제공

장점

  • 개발/테스트 환경에서 즉시 생성·삭제가 가능
  • pplication.yml 등에서 간단히 설정하여 사용 가능
  • 인메모리, 파일, 서버 모드 등 다양한 방식으로 사용 가능
  • 테스트 실행 시 DB를 매번 새로 생성하고, 테스트 종료 후 삭제 가능

단점

  • 대용량 데이터 처리, 동시성, 보안 등에서 MySQL, PostgreSQL, Oracle 등 상용 DB에 비해 한계 존재
  • 일부 고급 SQL 기능이나 DBMS별 특화 기능은 지원하지 않을 수 있음
  • 인메모리 모드에서는 서버가 종료되면 데이터가 모두 사라짐

Spring에서 H2 사용

build.gradle에서 h2 의존성을 추가해준 뒤 application.yml 파일에 다음과 같이 설정해준다.

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:
  h2:
    console:
      enabled: true

H2 데이터베이스 다운로드

  • 환경: MAC
  • 사용 버전: 2.2.224

1. 다운로드

https://www.h2database.com/html/download-archive.html
해당 url로 들어가서 버전 확인한 후 각 환경에 알맞은 버전을 다운로드 한다.

2. H2 데이터베이스 실행

다운로드 해준 뒤, H2 데이터베이스를 실행시켜줘야 한다.
먼저 파일에 권한을 줘야하는데, MAC의 경우 다음 코드들을 터미널에 입력해주면 된다.

cd [bin 폴더 저장 경로]
chmod 755 h2.sh
./h2.sh

윈도우의 경우는 bin이 저장된 폴더로 이동한 후 바로 h2.bat을 입력하면 된다.

실행을 하면 다음과 같은 화면이 뜬다.
자신이 원하는 설정과 JDBC url을 설정해준 뒤 연결 버튼을 눌러주면 다음과 같은 화면이 보인다.

이때 url 이름을 설정해주고 나면 bin 폴더에 [저장한 이름].mv.db 파일이 생성되는 것을 확인할 수 있다.

3. 데이터베이스 재실행

한 번 만들어진 데이터베이스에 재접속하려면 TCP로 다시 연결해야 한다.

profile
공부 기록 공간 '◡'

0개의 댓글