Contents
see List개요
Spring Boot 3.4는 2024년 11월에 정식 릴리스되며, Spring Framework 6.2 기반 위에 다양한 개선사항을 제공합니다. 기존 3.x 사용자라면 비교적 부드럽게 마이그레이션할 수 있지만, 일부 주요 변경사항은 반드시 확인해야 합니다. 이 글에서는 Spring Boot 3.4의 핵심 신기능과 실제 마이그레이션 과정에서 주의할 점을 정리합니다.
핵심 개념
Spring Boot 3.4의 가장 눈에 띄는 변화는 구조적 로깅(Structured Logging) 지원입니다. JSON 포맷으로 로그를 출력할 수 있어 ELK Stack이나 Datadog 같은 로그 수집 시스템과의 연동이 크게 간소화되었습니다.
또한 RestClient와 RestTemplate에 대한 자동 구성이 개선되어, HTTP 클라이언트 설정이 더욱 직관적으로 변경되었습니다. SSL 번들 자동 리로드 기능도 추가되어 인증서 갱신 시 애플리케이션 재시작 없이 반영됩니다.
Virtual Thread 지원이 한층 성숙해져서, Tomcat과 Jetty 환경에서 가상 스레드를 활용한 동시성 처리가 안정화되었습니다. spring.threads.virtual.enabled=true 설정 하나로 손쉽게 활성화할 수 있습니다.
실전 예제
구조적 로깅을 활성화하는 방법은 다음과 같습니다.
# application.yml
logging:
structured:
format:
console: ecs # Elastic Common Schema
file: logstash # Logstash JSON 포맷
커스텀 필드를 추가하려면 LoggingEventAppender를 확장합니다.
@Component
public class CustomStructuredLogger implements StructuredLogFormatter {
@Override
public String format(LogEvent event) {
Map<String, Object> json = new LinkedHashMap<>();
json.put("timestamp", event.getTimestamp());
json.put("level", event.getLevel());
json.put("message", event.getMessage());
json.put("service", "my-app");
json.put("traceId", MDC.get("traceId"));
return new ObjectMapper().writeValueAsString(json);
}
}
RestClient 자동 구성 활용 예제입니다.
@Service
public class ExternalApiService {
private final RestClient restClient;
public ExternalApiService(RestClient.Builder builder) {
this.restClient = builder
.baseUrl("https://api.example.com")
.defaultHeader("Accept", "application/json")
.build();
}
public UserDto getUser(Long id) {
return restClient.get()
.uri("/users/{id}", id)
.retrieve()
.body(UserDto.class);
}
}
활용 팁
- 마이그레이션 순서: Spring Boot 3.3에서 3.4로 이동 시, 먼저 deprecated API 경고를 모두 해결한 뒤 버전을 올리세요.
- 프로퍼티 변경 확인:
spring-boot-properties-migrator의존성을 추가하면 변경된 설정 키를 자동으로 감지합니다. - 테스트 호환성:
@SpringBootTest의 동작이 미세하게 변경되었으므로, 통합 테스트를 반드시 전수 실행하세요. - Java 버전: 최소 Java 17이 필요하며, Java 21 사용 시 Virtual Thread 기능을 최대한 활용할 수 있습니다.
- Docker 이미지: Buildpack 기반 OCI 이미지 빌드가 개선되어
spring-boot:build-image태스크 성능이 향상되었습니다.
마무리
Spring Boot 3.4는 구조적 로깅, SSL 자동 리로드, Virtual Thread 안정화 등 실무에서 바로 활용할 수 있는 기능이 많습니다. 특히 MSA 환경에서 로그 관리가 중요한 팀이라면 구조적 로깅 기능만으로도 업그레이드 가치가 충분합니다. 점진적으로 마이그레이션을 진행하되, 반드시 테스트 커버리지를 확보한 상태에서 진행하시기 바랍니다.
spring
| No | 작성일 | Title |
|---|---|---|
| 3360 | 2026. 08. 15. | Spring Boot Actuator와 Micrometer로 장애 징후를 먼저 찾는 운영 모니터링 구성 |
| 3328 | 2026. 08. 06. | Spring Boot 예외 처리 표준화 가이드: ProblemDetail로 일관된 API 오류 응답 만들기 |
| 3296 | 2026. 07. 29. | Spring Boot 로그인 API 보안 설계: 세션 없이 JWT를 안전하게 검증하는 방법 |
| 3265 | 2026. 07. 21. | Spring Boot API 장애 원인 빨리 찾기: Actuator와 Micrometer 관측성 구성 가이드 |
| 3238 | 2026. 07. 13. | Spring Boot 안정적인 외부 API 연동: WebClient·Circuit Breaker·Retry를 함께 운영하는 실전 가이드 |
| 3182 | 2026. 07. 04. | Spring Boot 무중단 배포를 위한 Graceful Shutdown과 Readiness Probe 설정 |
| 3137 | 2026. 06. 26. | Spring Security API 권한 설계: 공개 엔드포인트와 관리자 기능을 분리하는 실전 기준 |
| 3081 | 2026. 06. 18. | Spring Boot API 장애 추적을 위한 요청 ID와 관측 로그 설계 |
| 2992 | 2026. 06. 10. | Spring Boot 무중단 배포를 위한 준비 상태 점검과 종료 처리 설계 |
| 2935 | 2026. 06. 02. | Spring Boot Redis 캐시 운영 가이드: TTL, 무효화, 캐시 스탬피드 방지 설계 |