본문 바로가기
스파르타 내배캠

[TIL] #41. H2 데이터베이스

by saemsaem 2024. 7. 1.


 

 [ H2 DB 사용 방식 ] 

1. Server Mode

  • 직접 엔진을 설치하여 사용하는 방식 (다운로드 해야 함)
  • 애플리케이션과 상관 없는 외부에서 DB 엔진이 구동됨 (실행주체 = 외부)
  • 데이터가 외부에 저장되므로, 애플리케이션을 종료해도 데이터가 사라지지 않는다 (DB 저장 위치 : 로컬(파일 시스템))
  • 사용 용도 : 배포
  • 공식 다운로드 : https://www.h2database.com/html/main.html

 

 

 

 

2. In-memory Mode

  • 엔진을 설치하지 않고 애플리케이션 내부의 엔진을 작동하는 방식
  • build.gradle / application.properties 설정을 통해 실행 가능하다 (실행 주체 = 스프링)
  • 애플리케이션을 실행하면 DB엔진이 함께 실행되고, 종료하면 함께 종료된다 (휘발성)
  • 데이터가 애플리케이션의 메모리에 저장되기 때문에, 애플리케이션을 종료하면 데이터가 사라진다 (DB 저장 위치 : 메모리)
  • 사용 용도 : 테스트
# application.yml
spring:  
    datasource:    
        driver-class-name: org.h2.Driver
        url: jdbc:h2:mem:{DB 이름}
        username: sa
        password:

 

 

3. Embedded Mode

  • 엔진을 설치하지 않고 애플리케이션 내부의 엔진을 작동하는 방식
  • build.gradle / application.properties 설정을 통해 실행 가능하다 (실행 주체 = 스프링)
  • 애플리케이션을 실행하면 DB엔진이 함께 실행되고, 종료하면 함께 종료된다
  • 데이터가 애플리케이션 외부에 저장되기 때문에, 애플리케이션을 종료해도 데이터가 사라지지 않는다 (DB 저장 위치 : 로컬(파일시스템))
  • 사용 용도 : 개발
# application.yml
spring:
  datasource:
      driver-class-name: org.h2.Driver
      url: jdbc:h2:{DB가 저장될 경로}    
      username: sa    
      password:

 


 

 [ H2 실습 

# application.yml
spring:
  datasource:
      driver-class-name: org.h2.Driver
      url: jdbc:h2:~/test
      username: sa
      password:

localhost:8080/h2-console 접속

 

1. Embedded Mode

Driver, URL, User Name 확인 > Connect 버튼


2. In-memory Mode

'스파르타 내배캠' 카테고리의 다른 글

내일배움캠프 Java 5기 마무-리  (4) 2024.09.05
[TIL] #40. AccessToken vs. RefreshToken  (0) 2024.06.20
[TIL] #39. 회원가입 구현  (0) 2024.06.20
[TIL] #38. Validation  (0) 2024.06.18
[TIL] #37. MockMvc  (0) 2024.06.18