본문 바로가기

Spring

Spring Batch 6.0 마이그레이션 가이드: 꼭 알아야 할 변경 사항

728x90
반응형
728x170

Spring Batch는 대용량 데이터 처리와 배치 작업에 최적화된 프레임워크로, 금융, 물류, 공공기관 등 다양한 분야에서 널리 사용되고 있습니다. 최근 공개된 Spring Batch 6.0은 기존 구조를 단순화하고 최신 기술 스택에 맞춰 개선된 버전입니다. 하지만 동시에 많은 변경사항과 Deprecated API가 포함되어 있어 기존 애플리케이션을 유지·운영하는 개발자라면 반드시 숙지해야 합니다.

이 글에서는 Spring Batch 6.0 마이그레이션 시 확인해야 할 핵심 변경 사항을 정리하고, 버전 5에서 6으로 이전할 때 주의할 점을 설명합니다.

반응형

Spring Batch 6.0 주요 변경 사항

1. 의존성 업그레이드

Spring Batch 6.0은 내부적으로 사용하는 주요 스프링 프로젝트 버전을 최신으로 업그레이드했습니다.

  • Spring Framework 7
  • Spring Integration 7
  • Spring Data 4
  • Spring AMQP 4
  • Spring for Apache Kafka 4
  • Micrometer 1.16

즉, 단순히 Spring Batch만 업데이트하는 것이 아니라 관련 라이브러리 전체를 함께 맞춰야 안정적으로 동작합니다.


2. 배치 인프라 설정 방식 변화

(1) 공통 속성과 저장소 속성의 분리

기존에는 배치 인프라 설정이 JDBC 기반으로 강하게 묶여 있었지만, 6.0부터는 공통 속성과 저장소별 속성을 분리할 수 있습니다. 이에 따라 새로운 애노테이션이 추가되었습니다.

  • JDBC 저장소 설정: @EnableJdbcJobRepository
  • MongoDB 저장소 설정: @EnableMongoJobRepository

즉, 공통 속성은 @EnableBatchProcessing으로 지정하고, 저장소별 속성은 별도의 애노테이션을 통해 설정하면 됩니다.

(2) 기본 배치 설정의 변화

  • 기본값으로 데이터베이스가 필요 없는 “리소스리스 배치 인프라”가 제공됩니다.
  • JobExplorer와 JobLauncher가 더 이상 별도로 필요하지 않으며, JobRepository와 JobOperator로 통합되었습니다.
  • JobRegistrySmartInitializingSingleton도 제거되어 설정이 간소화되었습니다.

3. Deprecated 및 제거된 API

(1) Deprecated API

Spring Batch 6.0에서는 여러 API가 더 이상 사용되지 않습니다.

  • JobLauncher는 JobOperator로 대체되었습니다.
  • JobExplorer는 JobRepository로 통합되었습니다.
  • JobRegistrySmartInitializingSingleton은 더 이상 필요하지 않습니다.

(2) 제거된 API

이전 버전에서 사용 중단 예정으로 안내되었던 많은 API들이 완전히 제거되었습니다.
예를 들어, MongoDB와 Neo4j 관련 일부 리더와 라이터, 다양한 Support 클래스들이 삭제되었으므로 기존 프로젝트에서 해당 기능을 사용 중이라면 반드시 대체 방안을 마련해야 합니다.


4. API 이동 및 이름 변경

패키지 구조도 크게 바뀌었습니다.

  • org.springframework.batch.core.explore 패키지는 org.springframework.batch.core.repository.explore로 이동했습니다.
  • XML 설정에서도 job-launcher라는 속성이 job-operator로 변경되었습니다.

즉, 단순히 코드에서 클래스 이름만 변경하는 것이 아니라, 패키지 경로와 XML 설정까지 모두 확인해야 합니다.


728x90

Spring Batch 6.0은 Java 17 이상을 요구하며, 내부적으로 큰 구조 개편이 이루어졌습니다.

  • 배치 인프라 설정이 단순화되었고, 저장소별 설정을 명확히 분리할 수 있게 되었습니다.
  • 불필요하거나 중복되는 API가 대거 정리되면서 유지보수가 쉬워졌습니다.
  • Job 관련 기능들이 JobRepository와 JobOperator 중심으로 통합되어 구조가 명확해졌습니다.

마이그레이션 시에는 우선적으로 기존 설정 클래스와 Deprecated API 사용 여부를 점검하고, 패키지 경로 변경까지 꼼꼼히 확인해야 합니다.

Spring Batch 6.0은 복잡성을 줄이고 직관적인 설정 방식을 제공하여 앞으로 더 효율적인 배치 개발 환경을 만들어 줄 것으로 기대됩니다.

https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-6.0-Migration-Guide?fbclid=IwY2xjawMSUztleHRuA2FlbQIxMQABHs0IoAjnNwamU2xtf9uTmEJXcjbh1UPS4ElbLmMoqEufiryTW9nbRZRQOV1I_aem_HF0UJyiv7ece2Nqklq2Xiw

 

Spring Batch 6.0 Migration Guide

Spring Batch is a framework for writing batch applications using Java and Spring - spring-projects/spring-batch

github.com

728x90
반응형
그리드형