개발과 테스트 환경에서 많이 쓰는 경량형 데이터베이스다.
즉, 무겁고 복잡한 대형 DB 대신 간단하고 빠르게 돌려볼 수 있는 DB라고 생각하면 이해하기 쉽다.
설치가 간단하고, 자바 애플리케이션과 호환성도 좋다,
H2는 크게 인메모리 / 임베디드 / 서버 모드 3가지 방식으로 구동할 수 있다.
필자는 컵라면 조리 방식에 비유해 설명했다.
컵라면을 조리한다고 가정해보자.
DB도 컵라면처럼 데이터(국물)와 DB 엔진(물 끓이는 기계) 이 어디 있느냐에 따라 종류가 나뉜다.
| 모드 | 비유 | 설명 |
| Server Mode | 편의점 뜨거운 물 | 외부 기계(엔진)가 따로 있고, 데이터도 거기에 저장 |
| In-Memory Mode | 즉석 컵라면 | 애플리케이션 안에서만 임시로 끓여먹고 다 먹으면 끝 |
| Embedded Mode | 집에서 끓여먹는 라면 | 애플리케이션 안에서 조리하지만 국물(데이터)은 따로 저장 |
| 모드 | 엔진 위치 | 데이터 저장 | 특징 | 용도 |
| Server | 외부 엔진 | 파일(로컬) | 애플리케이션과 분리, 여러 프로그램이 같이 쓸 수 있음 | 배포 |
| In-Memory | 애플리케이션 내부 | 메모리 | 종료 시 데이터 사라짐 | 테스트 |
| Embedded | 애플리케이션 내부 | 파일(로컬) | 종료해도 데이터 유지 | 개발 |
driver-class-name=org.h2.Driver
username=root
password=driver-class-name=org.h2.Driver
username=root
password=jdbc:h2:mem:{DB이름}jdbc:h2:mem:{DB이름}jdbc:h2:{경로}jdbc:h2:{경로}조금더 빠른 이해를 위해서 컵라면 조리에 비유해보니까 의외로 쉽게 이해됐다. 비유로 이해 하니까 훨신 빠르게 이해 되었다.
H2는 아래처럼 기억하자
H2란? 가볍게 쓸 수 있는 개발/테스트용 DB
H2 모드란? 데이터와 엔진을 어디에 두느냐를 구분한 것
왜 구분하나? 상황에 맞게 효율적으로 데이터를 관리하려고