⏰ 2024. 06. 27 수
✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.
H2 데이터베이스
매우 작고 빠르며 메모리 사용이 효율적인 경량
데이터베이스이여서 임베디드나 테스트 목적으로 사용할 때 매우 유용하다.
순수 Java
언어로 작성되어 자바 애플리케이션과 쉽게 사용 가능하다. 또한 JDBC API를 지원하여 여러 언어와도 호환되어 사용할 수 있다.
인메모리 모드, 디스크 기반 모드, 서버 모드 등 여러가지 모드를 지원한다. 자세한 내용은 밑에서 설명하겠다.
ANSI SQL을 준수하며, 트리거, 사용자 정의 함수, 서브 쿼리, 외부 테이블, 백업 등 다양한 고급 기능을 제공한다.
데이터베이스를 관리하기 위해 웹 콘솔
을 제공하여 데이터베이스 객체를 시각적으로 관리하고 SQL 쿼리를 실행할 수 있다.
오픈 소스
로 제공되고 있기 때문에 자유롭게 사용 가능하다.
Server
, In-Memory
, Embedded
의 3가지가 있다.직접 엔진을 설치하여 사용하는 방식이다.
애플리케이션과 상관 없이 외부
에서 DB 엔진이 구동된다.
데이터가 애플리케이션 외부에 저장되기에 애플리케이션을 종료해도 데이터가 사라지지 않는다.
애플리케이션과 DB가 분리되어 있기 때문에 여러 애플리케이션에서 동일한 DB를 사용하기 적합하다.
엔진을 설치하지 않고 애플리케이션 실행을 통해 DB 엔진을 구동하는 방식이다.
build.gradle
와application.properties
를 설정하여 실행할 수 있다.
애플리케이션을 실행하면 DB 엔진이 같이 실행되고 애플리케이션을 종료하면 DB 엔진이 종료된다.
데이터가 애플리케이션의 메모리에 저장되기 때문에 애플리케이션을 종료하면 데이터가 사라진다.
애플리케이션 종료 시 DB도 함께 종료되며 데이터가 사라지기 때문에 테스트 환경에 많이 사용된다.
엔진을 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식이다.
build.gradle과 application.properties를 설정하여 실행할 수 있다.
애플리케이션을 실행하면 DB 엔진이 같이 실행되고 애플리케이션을 종료하면 DB 엔진이 종료된다.
데이터가 애플리케이션의 외부에 저장되기 때문에 애플리케이션을 종료해도 데이터가 사라지지 않는다.