Spring Boot에서 빠르게 테스트하거나, 데이터 유지가 필요한 개발 환경을 위해 H2 Database를 설정하는 방법을 정리합니다. 별도의 데이터베이스 설치 없이 로컬에서 가볍게 사용할 수 있어 개발 및 테스트 환경에 최적화된 선택지입니다.
1. H2 Database란?
H2 Database는 가볍고 빠른 RDB로, Spring Boot와 쉽게 연동할 수 있습니다. 인메모리 모드, 파일 모드, TCP 서버 모드 등 다양한 실행 방식을 지원하며, 개발 및 테스트 환경에서 유용하게 활용됩니다.
특히, 별도의 설치 과정 없이 설정만으로 로컬에서 사용할 수 있어 개발 생산성을 높이는 데 유리합니다.
2. H2 Database 설정 방법
2.1 빠른 테스트용 (인메모리 모드)
- 데이터가 애플리케이션 종료 시 삭제됨
- 가장 빠른 속도를 제공하며, 테스트 환경에 적합
설정 (application.yml)
spring:
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
jdbc:h2:mem:testdb 를 사용하면 메모리에서만 동작하며, 애플리케이션이 종료되면 데이터가 삭제됩니다.
2.2 데이터 유지용 (파일 모드)
- 데이터가 애플리케이션 종료 후에도 유지됨
- 파일에 데이터가 저장되므로 로컬 개발 환경에서 지속적인 사용 가능
설정 (application.yml)
spring:
datasource:
url: jdbc:h2:file:~/testdb
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
jdbc:h2:file:~/testdb 를 사용하면 ~/testdb.mv.db 파일에 데이터가 저장되며, 애플리케이션을 재시작해도 데이터가 유지됩니다.
3. H2 Console 활성화
Spring Boot에서 H2 Database를 쉽게 확인하려면 H2 콘솔을 활성화하는 것이 좋습니다.
H2 콘솔 접속 방법
- 브라우저에서 http://localhost:8080/h2-console 접속
- JDBC URL을 application.yml의 설정값과 동일하게 입력 (jdbc:h2:mem:testdb 또는 jdbc:h2:file:~/testdb)
- Connect 버튼 클릭
4. TCP 서버 모드 설정 (다중 접속 지원)
- 여러 개의 애플리케이션에서 같은 H2 Database에 접근해야 할 경우 유용함
- 파일 모드와 유사하지만 별도의 프로세스로 실행됨
설정 (application.yml)
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/testdb
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
TCP 서버 실행 방법
java -cp h2-*.jar org.h2.tools.Server -tcp -tcpAllowOthers -ifNotExists
이후 jdbc:h2:tcp://localhost/~/testdb URL을 사용해서 접속하면 됩니다.
5. 정리
실행 모드 | url | 설정데이터 유지 여부 | 용도 |
인메모리 | jdbc:h2:mem:testdb | ❌ (휘발성) | 빠른 테스트 |
파일 | jdbc:h2:file:~/testdb | ✅ (유지됨) | 로컬 개발 환경 |
TCP 서버 | jdbc:h2:tcp://localhost/~/testdb | ✅ (유지됨) | 다중 애플리케이션 접근 |
H2 Database는 설정이 간단하면서도 강력한 기능을 제공하므로, 개발 중 필요에 따라 적절한 모드를 선택하여 사용하면 좋습니다.
'Back-End > Java & Spring' 카테고리의 다른 글
CORS 오류 해결하기(Spring) (0) | 2025.03.02 |
---|---|
Ubuntu에서 Spring Boot 애플리케이션 배포하기 – Git, Gradle, Tomcat을 활용 (0) | 2025.02.20 |
Spring Boot에서 Bean Scope 설정하기 (0) | 2025.02.18 |