사전 준비 | H2DB

Faithful Dev·2025년 2월 28일

스프링 프레임워크

목록 보기
16/20

H2 Database(H2DB)는 경량 오픈 소스 관계형 데이터베이스(RDBMS)로, Java로 작성되었으며 임베디드 모드와 서버 모드를 모두 지원하는 데이터베이스이다. H2는 빠른 성능과 간편한 설정으로 인해 테스트 환경, 개발 환경, 경량 애플리케이션에서 많이 사용된다.


주요 특징

경량 & 메모리 기반

  • 파일 기반 또는 메모리 기반으로 동작 가능
  • 데이터베이스 크기가 작고 속도가 빠름

임베디드 & 서버 모드 지원

  • 임베디드 모드: 애플리케이션 내부에서 실행 (외부 프로세스 필요 없음)
  • 서버 모드: 네트워크를 통해 여러 클라이언트가 접근 가능

Java 기반 & JDBC 지원

  • 100% Java로 개발되었으며 JDBC API를 지원
  • Java 애플리케이션에서 손쉽게 연동 가능

SQL 표준 준수

  • 대부분의 SQL-92 표준을 지원
  • MySQL, PostgreSQL 등의 DBMS와 유사한 SQL 문법 제공

빠른 실행 속도

  • 데이터가 메모리에 저장될 경우 매우 빠른 속도를 자랑
  • 애플리케이션 개발 및 테스트 시 빠른 데이터 처리가 가능

자동 종료 및 초기화 기능

  • DB_CLOSE_ON_EXIT=TRUE 설정을 통해 애플리케이션 종료 시 자동으로 DB 종료
  • 개발 및 테스트 환경에서 데이터베이스를 매번 초기화할 수 있음

사용 방법

H2 데이터베이스 다운로드 & 실행

  • 공식 웹사이트에서 다운로드 가능
  • h2-<version>.jar 파일을 실행하여 웹 콘솔 접근 가능
java -jar h2-<version>.jar

Spring Boot에서 H2 설정하기

application.properties 예제 (임베디드 모드)

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true
  • jdbc:h2:mem:testdb: 메모리 기반 DB 사용
  • spring.h2.console.enabled=true: H2 웹 콘솔 활성화 (http://localhost:8080/h2-console)

H2 웹 콘솔 접속

  • http://localhost:8080/h2-console 접속
  • JDBC URL: jdbc:h2:mem:testdb 입력 후 연결

장단점

장점

  • 가벼운 데이터베이스 (설치 필요 없음)
  • 빠른 실행 속도 (메모리 기반 가능)
  • Java 애플리케이션과의 쉬운 연동
  • 개발 및 테스트 환경에 최적화
  • SQL 표준 지원

단점

  • 대용량 데이터 처리에는 적합하지 않음
  • 멀티 유저 환경에서는 성능 저하 가능
  • 트랜잭션 처리 기능이 상용 DB보다 제한적

활용 사례

  1. Spring Boot 애플리케이션 개발 & 테스트
  2. JUnit 테스트에서 임시 DB로 활용
  3. 경량 애플리케이션의 내장형 데이터베이스
  4. 데이터베이스 학습 및 프로토타이핑

정리

  • **H2 Database는 Java 기반의 가벼운 관계형 데이터베이스(RDBMS)
  • 메모리 및 파일 기반으로 동작 가능하며, 빠른 속도가 장점
  • Spring Boot 등 개발 및 테스트 환경에서 많이 사용
  • 대용량 데이터 처리보다는 임시 데이터 저장 및 개발용 DB로 적합
profile
Turning Vision into Reality.

0개의 댓글