[SPRING] H2 데이터베이스

김승수·2024년 6월 28일
0

SPRING

목록 보기
23/27

⏰ 2024. 06. 27 수

✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.

💡 목차

  1. H2 DB 란?
  2. H2 DB 사용방식

H2 데이터베이스

H2 DB 란?

  • Java로 작성된 고성능 경량 관계형 데이터베이스 관리 시스템이다.

특징

  1. 매우 작고 빠르며 메모리 사용이 효율적인 경량 데이터베이스이여서 임베디드나 테스트 목적으로 사용할 때 매우 유용하다.

  2. 순수 Java 언어로 작성되어 자바 애플리케이션과 쉽게 사용 가능하다. 또한 JDBC API를 지원하여 여러 언어와도 호환되어 사용할 수 있다.

  3. 인메모리 모드, 디스크 기반 모드, 서버 모드 등 여러가지 모드를 지원한다. 자세한 내용은 밑에서 설명하겠다.

  4. ANSI SQL을 준수하며, 트리거, 사용자 정의 함수, 서브 쿼리, 외부 테이블, 백업 등 다양한 고급 기능을 제공한다.

  5. 데이터베이스를 관리하기 위해 웹 콘솔을 제공하여 데이터베이스 객체를 시각적으로 관리하고 SQL 쿼리를 실행할 수 있다.

  6. 오픈 소스로 제공되고 있기 때문에 자유롭게 사용 가능하다.

H2 DB 사용 방식

  • H2 DB가 지원하는 모드로는 Server, In-Memory, Embedded의 3가지가 있다.

1. Server 모드

  • 직접 엔진을 설치하여 사용하는 방식이다.

  • 애플리케이션과 상관 없이 외부에서 DB 엔진이 구동된다.

  • 데이터가 애플리케이션 외부에 저장되기에 애플리케이션을 종료해도 데이터가 사라지지 않는다.

  • 애플리케이션과 DB가 분리되어 있기 때문에 여러 애플리케이션에서 동일한 DB를 사용하기 적합하다.

2. In-Memory 모드

  • 엔진을 설치하지 않고 애플리케이션 실행을 통해 DB 엔진을 구동하는 방식이다.

  • build.gradleapplication.properties 를 설정하여 실행할 수 있다.

  • 애플리케이션을 실행하면 DB 엔진이 같이 실행되고 애플리케이션을 종료하면 DB 엔진이 종료된다.

  • 데이터가 애플리케이션의 메모리에 저장되기 때문에 애플리케이션을 종료하면 데이터가 사라진다.

  • 애플리케이션 종료 시 DB도 함께 종료되며 데이터가 사라지기 때문에 테스트 환경에 많이 사용된다.

3. Embedded 모드

  • 엔진을 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식이다.

  • build.gradle과 application.properties를 설정하여 실행할 수 있다.

  • 애플리케이션을 실행하면 DB 엔진이 같이 실행되고 애플리케이션을 종료하면 DB 엔진이 종료된다.

  • 데이터가 애플리케이션의 외부에 저장되기 때문에 애플리케이션을 종료해도 데이터가 사라지지 않는다.

profile
개발하는 미어캣

0개의 댓글