내장형 H2 데이터베이스
= H2 Database는 빠르고 가벼운 오픈소스 관계형 데이터베이스로, 주로 개발과 테스트 환경에서 사용되며, 임베디드 모드와 서버 모드를 지원해 다양한 애플리케이션에 적합한 유연성을 제공합니다.
항목 | 설명 |
정의 | Java 기반의 오픈소스 경량 내장형 관계형 데이터베이스 관리 시스템(RDBMS) |
특징 | - Java와 완벽히 통합- 메모리 및 디스크 기반 모드 지원 - 빠르고 가벼운 성능 |
라이선스 | Apache 2.0 라이선스 |
데이터베이스 유형 | 관계형 데이터베이스 (Relational Database) |
지원 언어 | SQL (표준 SQL 및 일부 고유 기능 제공) |
주요 모드 | - 임베디드 모드: 애플리케이션과 동일 JVM에서 실행- 서버 모드: 클라이언트-서버 모델 |
장점 | - 설치가 간단- 빠른 속도 - 테스트 및 개발 환경에 적합 |
단점 | - 대규모 데이터 처리에 부적합 - 고급 기능이 제한적 |
주요 사용 사례 | - 단위 테스트 환경 - 경량 애플리케이션 - 개발 및 프로토타이핑 |
호환성 | JDBC를 통해 대부분의 Java 애플리케이션과 통합 가능 |
기본 파일 포맷 | .h2.db (H2 데이터베이스 파일) |
주요 기능 | - 트랜잭션 관리 - 다중 연결 지원 -암호화된 데이터베이스 옵션 |
데이터 저장 옵션 | - 메모리(Memory) 기반 - 파일(File) 기반 |
H2 데이터베이스 실행 모드 설명 및 장단점
설명 | 장점 | 단점 | |
Server Mode | - 직접 DB 엔진을 설치하고 외부에서 DB 엔진을 구동. ( 서버 모드는 현업에서 사용하는 모드로 컴퓨터에 DB 엔진을 설치하고 엔진을 구동하여 사용하는 방식 ) - 데이터는 애플리케이션 외부에 저장되며, 애플리케이션 종료와 무관하게 유지됨. |
- 데이터가 영구 저장됨. - 여러 애플리케이션이나 사용자와 공유 가능. - 독립적 DB 운영 가능. |
- 설정 및 관리가 필요함. - 메모리 및 디스크 자원 추가 소모. - 비교적 느린 성능. |
In-memory Mode | - 애플리케이션 내부에서 DB 엔진을 함께 실행, 종료 - 데이터가 메모리에 저장되며, 애플리케이션 종료 시 데이터도 소멸됨. - 단위 테스트 등에서 많이 사용 |
- 매우 빠른 성능. - 설치가 필요 없음. - 테스트 및 프로토타이핑에 적합. |
- 데이터가 영구 저장되지 않음. - 애플리케이션 종료 시 데이터 손실. |
Embedded Mode | - 애플리케이션 내부에서 DB 엔진을 함께 실행, 종료 - 데이터는 외부 파일로 저장[로컬 메모리에 직접 저장, 애플리케이션에 휘발성 저장이 아니다]되어 애플리케이션 종료 후에도 유지됨. |
- 데이터가 영구 저장됨. - 설치가 필요 없음. - 빠르고 간단하게 사용 가능. |
- 단일 애플리케이션에 의존. - 외부 사용자와의 데이터 공유가 어려움. - 성능이 제한될 수 있음. |
추가 설명:
- Server Mode는 개발 및 테스트 환경뿐 아니라 가벼운 프로덕션 환경에서도 사용할 수 있습니다. 다만 성능과 확장성은 상용 DBMS에 비해 제한적입니다.
- In-memory Mode는 단위 테스트나 빠른 데이터 처리 및 소멸이 필요한 상황에서 이상적입니다.
- Embedded Mode는 애플리케이션 중심으로 운영되는 환경에서 적합하며, 간단한 데이터베이스 유지 및 관리가 필요한 경우 유용합니다.
'DB > DBMS' 카테고리의 다른 글
[JPA] DB[JPA] 정리 (0) | 2025.01.24 |
---|---|
[DBMS] SQL (0) | 2025.01.24 |
[DB] DB (Database) (1) | 2024.12.21 |