문제상황

implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// h2
implementation 'com.h2database:h2'
spring:
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
H2 사용을 위해 의존성을 추가하고 DataSource 및 H2 Console 설정을 한 뒤 프로젝트를 실행하여
h2-console 웹 화면에 접속했지만 화이트라벨 에러 페이지가 떴다
설정 값에서 철자가 틀린 것인지 아니면 의존성 추가를 잘못했다고 생각이 들어서
이전 프로젝트의 yml 설정값과 의존성을 가져와서 실행했는데도 계속 오류가 났다
정상적으로 실행이 되면 아래 사진과 같은 로그가 남는다

원인

프로젝트를 생성할 때 spring boot 4.x 버전대가 있었고 앞자리가 바뀌었길래 호기심에 선택한 게 문제였다
gpt를 통해서 spring boot 4.x 버전대의 오류일수 있다는 힌트를 얻었고 관련된 내용이 담긴 블로그 글을 확인해서 원인을 찾을 수 있게 되었다.(Spring Boot 4의 주요 변경 사항)
대략적인 원인은 아래와 같다
- Spring Boot 4는 자동 구성(auto-configuration)을 줄이고 명시적인 의존성/구성이 필요하도록 방향을 바꿨다
- 특히 개발자 도구(Dev-only tools) 나 콘솔 같은 기능은 기본으로 포함되지 않고 필요한 경우 직접 추가해야 함
- /h2-console 같은 개발용 UI가 자동으로 활성화되는 것이 보안 위험이 될 수 있어 이를 기본으로 제공하지 않는 것이 안전성을 높인다는 의도도 있다
해결책
1. spring boot를 3.x 버전으로 변경
2. 의존성 추가 및 path 설정
// h2
implementation 'com.h2database:h2'
implementation 'org.springframework.boot:spring-boot-h2console'
spring:
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true
path: /h2-console // 추가
jpa:
hibernate:
ddl-auto: create
- spring boot 3에서는 path 기본값이 h2-console이였기 때문에 작성하지 않아도 되었지만 spring boot 4에서는 꼭 작성해주어야 한다
마무리
spring boot 4.x는 최근에 나온 버전이기 때문에 h2-console 웹 접근 오류를 검색하면 보통
path값, h2.console.enabled:true와 같은 내용이 대부분이어서
혹시 나와 같은 실수를 한 사람을 위해 글을 남긴다...
'복습 프로젝트' 카테고리의 다른 글
| 복습 프로젝트 (1) JPA 의존성 추가 후 DataSource 설정 오류 (0) | 2026.01.03 |
|---|---|
| 프로젝트 계획 (0) | 2026.01.01 |