H2 DB 모드에 대해 알아보자

Daniel·2024년 9월 30일
0

DataBase

목록 보기
3/3

애플리케이션을 개발할 때 H2 DB를 많이 사용하실텐데요.
저도 사용하며 모드에 대해 짚고 넘어가고 싶어 이 포스트를 작성합니다.

이 포스트에서는 사용법이 아닌 H2 DB 가 실행되는 모드에 대해 설명합니다.

동작 방식

Embedded Mode

H2 DB 는 애플리케이션과 동일한 프로세스 내에서 실행됩니다.
별도의 서버 프로세스가 없으며 DB 의 수명주기는 애플리케이션의 수명주기와 연결됩니다.

특징

  • 동일한 프로세스내에서 실행
    DB 는 애플리케이션 프로스세 자체에 통합됩니다.
    즉, 백그라운드에서 실행되는 별도의 서버가 아닙니다.

  • 단일 클라이언트 액세스
    DB 를 시작한 애플리케이션만 DB 와 상호 작용할 수 있습니다.
    다른 애플리케이션은 이 DB 에 연결할 수 없습니다.

  • 네트워크 액세스 없음
    DB 가 애플리케이션에 내장되어 있으므로 TCP 와 같은 네트워크 프로토콜 없이 직접 액세스 됩니다.

  • 저장소
    인메모리 또는 파일기반

JDBC URL

jdbc:h2:mem:testdb
jdbc:h2:file:~/testdb

Server Mode

H2 DB 는 별도의 서버 프로세스 로 실행됩니다.
애플리케이션은 다른 DB 의 작동방식과 유사하게 네트워크(Ex. TCP) 를 통해 서버에 연결하여 DB와 상호 작용합니다.

특징

  • 별도 프로세스
    H2 DB 는 연결된 애플리케이션과 관계없이 전용 프로세스에서 실행됩니다.

  • 다중 클라이언트 액세스
    여러 애플리케이션이나 인스턴스가 네트워크를 통해 DB 에 연결할 수 있으므로 동일한 DB 에 대한 공유 액세스가 가능합니다.

  • 네트워크 엑세스
    애플리케이션은 네트워크 프로토콜(TCP) 을 통해 DB 에 연결됩니다.
    즉, DB 를 다른 시스템에서 호스팅하거나 원격으로 액세스할 수 있습니다.

  • 저장소
    인메모리 또는 파일기반

JDBC URL

jdbc:h2:tcp://localhost/mem:testdb
jdbc:h2:tcp://localhost/~/testdb

데이터 저장 방식

In-Memory Mode

H2 DB 가 데이터를 저장하는 방식 을 나타냅니다.
이 모드에서는 DB 가 전적으로 RAM 에 존재하며, 애플리케이션이 중지되거나 서버가 종료되면 모든 데이터가 손실됩니다.

특징

  • 휘발성 저장소
    DB 는 메모리에 저장되므로 임시입니다. 애플리케이션이나 프로세스가 중지되면 전체 DB 가 지워집니다.

  • 빠른 성능
    모든 것이 메모리에 저장되므로 디스크 기반 스토리지에 비해 액세스 시간이 훨씬 빠릅니다.

  • 임베디드 모드와 서버 모드 모두에서 사용 가능

파일 기반 모드

DB 를 디스크 파일에 저장 하는 것을 의미합니다.
이는 영구적 저장소를 제공합니다.
즉, 애플리케이션이나 서버가 중지되더라도 데이터는 유지되며 다음에 애플리케이션이나 서버가 시작될 때 액세스할 수 있습니다.

특징

  • 영구 스토리지
    DB 는 디스크에 저장되므로 데이터는 애플리케이션이나 시스템을 다시 시작해도 유지됩니다.

  • 인메모리보다 느린 성능
    데이터가 디스크에 저장되므로 인메모리 모드에 비해 액세스 시간이 느립니다.

  • 임베디드 모드와 서버 모드 모두에서 사용 가능

profile
응애 나 애기 개발자

0개의 댓글