1. 나의 Dev Pofile H2 설정
테스트한 데이터들이 삭제되지 않고 유지하기 위해 파일 저장 방식으로 테스트 환경 구성'
해당 내용은 나의 개발환경 설정으로 모든 사용법을 다루지는 않음.
spring:
datasource:
url: jdbc:h2:file:./data/testdb;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1
driver-class-name: org.h2.Driver
username: sa
password:
| jdbc:h2:file:./data/testdb; | ./data/ 디렉토리에 testdb.mv.db 라는 파일로 저장됨, |
| AUTO_SERVER=TRUE; | 어플리케션, 외부H2콘솔 툴 등 여러 프로세스에서 동시에 해당파일에 접근할 수 있도록 |
| DB_CLOSE_DELAY=-1; | 커넥션이 잠시 끊겨도 DB 구조를 메모리에 계속 유지 |
2. 나의 Dev Pofile H2 콘솔
1. 접속 주소
- http:localhost:8080/h2-console
2. 설정값
- JDBC URL : jdbc:h2:file:./data/testdb
- User Name : sa
- Password:

3. URL 옵션 설명
| AUTO_SERVER | 여러 프로세스에서 동시에 해당파일에 접근가능 여부 설정 어플리케션, 외부H2콘솔 툴 등등 |
| DB_CLOSE_DELAY | 접속이 끊겨도 DB를 즉시 닫지 않고 유지하도록 설정 > 1 영구 유지. 프로세스가 살아있는 동안 절대 닫지 않음 > 0 기본값, 즉시 종료. 마지막 연결이 닫히는 순간 DB도 닫힘 값이 0인 경우, 스프링 부트가 내부적으로 커넥션 풀을 비우거나 잠시 연결을 끊는 순간 메모리에 있던 데이터가 즉시 증발하는 현상이 발생함 > 양수 (n) 마지막 연결 종료 후 n초 동안 대기했다가 닫음 값이 양수 인 경우 n 초 만큼 대기 하였다가 이후 DB가 닫히고 인메모리 데이터가 증발하는 현상이 발생함. jdbc file 모드인 경우 파일은 남지만, 다시 열면 오버헤다가 발생할 수 있음. |
| DB_CLOSE_ON_EXIT | 자바 가상 머신(JVM)이 종료될 때 H2가 자동으로 DB를 닫을지 여부를 결정 > TRUE (기본값) JVM이 종료될 때(애플리케이션 종료 시) H2가 안전하게 데이터베이스를 닫음 이때 로그 파일(trace)을 정리하고 변경 사항을 파일에 최종 반영함 > FALSE JVM이 종료되어도 H2가 스스로 닫히는 작업을 수행하지 않음 보통 스프링 부트 애플리케이션은 종료될 때 자체적인 Shutdown Hook을 실행함. 만약 H2가 먼저 종료되어 버리면, 스프링이 종료되면서 남기려는 로그나 마지막 DB 작업이 실패할 수 있으므로 스프링이 다 끝날 때까지 H2 네가 먼저 죽지 마(FALSE) 라고 설정하는 경우가 많음 |
'개발 > spingboot' 카테고리의 다른 글
| Springboot 설정(application.yaml) 우선순위 (0) | 2026.02.19 |
|---|---|
| Springboot Controller 에서 OpenAPI 분리하기 (0) | 2026.02.11 |