티스토리 뷰

서론

Spring Boot 3.x는 2022년 말에 출시된 이후 꾸준히 발전해왔으며, 2025년 현재 더욱 향상된 기능과 최적화된 성능을 제공합니다. 이 글에서는 최신 Spring Boot 3.x의 새로운 기능을 살펴보고, 개발자가 활용할 수 있는 주요 개선점을 정리합니다.


1. Jakarta EE 10 지원 및 패키지 변경

Spring Boot 3.x는 Jakarta EE 10을 기본적으로 지원하며, 기존 javax 패키지에서 jakarta 패키지로 변경되었습니다.
이전 버전에서 업그레이드할 경우, javax.persistence 같은 패키지 사용 부분을 jakarta.persistence로 수정해야 합니다.

// 변경 전 (Spring Boot 2.x) 
import javax.persistence.Entity; 
import javax.persistence.Id; 

// 변경 후 (Spring Boot 3.x) 
import jakarta.persistence.Entity;
import jakarta.persistence.Id;

개발자가 할 일: javax 패키지를 jakarta로 변경해야 함.


2. GraalVM 네이티브 이미지 지원 강화

Spring Boot 3.x는 GraalVM을 공식 지원하여 애플리케이션을 **네이티브 이미지(Native Image)**로 빌드할 수 있습니다.
이 덕분에 실행 속도가 빨라지고, 메모리 사용량이 줄어들어 경량화된 애플리케이션 배포가 가능합니다.

# 네이티브 이미지 빌드 
./mvnw -Pnative native:compile

장점:

  • 기동 시간이 빨라짐
  • 메모리 사용량 감소
  • 클라우드 및 서버리스 환경에서 유리

3. Virtual Threads (Java 21) 지원

Spring Boot 3.x는 Java 21의 **Virtual Threads(가상 스레드)**를 지원합니다. 이를 활용하면, 기존 @Async 기반의 비동기 처리보다 더 가볍고 효율적인 스레드 처리가 가능합니다.

ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor(); 
executor.submit(() -> System.out.println("Virtual Thread 실행"));

장점:

  • 기존 스레드 풀보다 경량화됨
  • 동시성 처리 성능 향상

4. Spring Security 6 적용

Spring Boot 3.x는 Spring Security 6을 사용하며, 기존의 WebSecurityConfigurerAdapter가 제거되었습니다.
이제는 SecurityFilterChain을 사용하여 보안 설정을 진행해야 합니다.

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
        .authorizeHttpRequests(auth -> auth
            .requestMatchers("/public/**").permitAll()
            .anyRequest().authenticated()
        )
        .formLogin(withDefaults());

    return http.build();
}

개발자가 할 일: 기존의 WebSecurityConfigurerAdapter 기반 설정을 SecurityFilterChain 방식으로 변경해야 함.


5. Observability(관찰 가능성) 지원

Spring Boot 3.x는 Micrometer와 OpenTelemetry를 기본적으로 지원하여 애플리케이션의 로그, 메트릭, 트레이싱을 한 번에 관리할 수 있습니다.

@Bean
MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
    return registry -> registry.config().commonTags("application", "my-app");
}
 

장점:

  • 시스템 모니터링 및 성능 분석 가능
  • 클라우드 네이티브 환경에서 활용 가능

결론

Spring Boot 3.x는 더 빠르고, 가벼우며, 클라우드 친화적인 개발을 지원합니다. Jakarta EE 10 적용, GraalVM 네이티브 이미지 빌드, Virtual Threads 지원 등 최신 기술을 활용하여 성능을 극대화할 수 있습니다.
지금 바로 프로젝트를 Spring Boot 3.x로 업그레이드하여 최신 기능을 활용해 보세요! 🚀