원문 : https://docs.spring.io/spring-batch/reference/spring-batch-intro.html
엔터프라이즈 도메인의 많은 애플리케이션의 경우 미션 크리티컬한 환경에서 비즈니스 운영을 수행하기 위한 대량의 처리를 필요로 한다.(미션 크리티컬 : 업무 수행을 위하여 필수 불가결한 요소) 이러한 비즈니스 운영 요소로는 다음과 같은 것들이 있다.
스프링 배치는 경량의, 포괄적인 배치 프레임워크로써 엔터프라이즈 시스템에서 매일 수행해야 하는 중요한 다량의 배치 작업을 개발하기 위해 설계되었습니다. 스프링 배치는 사람들이 기대하는 스프링 프레임워크의 특성(생산성, POJO 기반 개발 접근 방식 및 일반적인 사용 편의성)을 기반으로 하며, 개발자가 필요할 때 더 발전된 엔터프라이즈 서비스에 쉽게 접근하여 사용할 수 있도록 합니다. 스프링 배치는 스케줄링 프레임워크가 아닙니다. 상업용, 오픈 소스에 걸쳐 Quartz, Tivoli, Control-M과 같은 우수한 엔터프라이즈급 스케줄러가 많습니다. 스프링 배치는 스케줄러를 대체하려고 하기 보단, 스케줄러와 함께 잘 작동하도록 만들어졌습니다.
스프링 배치는 로깅, 추적, 트랜잭션 관리, 작업 통계, 작업 재시작, 생략, 자원 관리 등을 포함한 대용량의 기록을 처리하는 데 반드시 필요한 재사용 가능 함수들을 제공합니다. 또한 최적화와 파티셔닝 기술을 통해 대용량, 고성능 배치 작업들을 가능케하는 기술적인 서비스와 기능들을 제공합니다. 스프링 배치는 데이터베이스에서 파일을 읽거나, 저장된 프로시저를 실행하는 등의 간단한 사례부터 대용량의 데이터를 데이터베이스 사이에 옮기거나, 변환하는 등의 복잡하고 방대한 작업까지 모두 수행할 수 있습니다. 이 프레임워크를 사용함으로써 방대한 양의 정보를 확장성이 높은 방식으로 고용량의 배치 작업을 수행할 수 있을 것입니다.
오픈 소스 소프트웨어 프로젝트와 관련 커뮤니티는 웹 기반, 마이크로 서비스 기반 아키텍처 프레임워크에 큰 관심을 가져왔으며 이들에는 엔터프라이즈 IT 환경에서 데이터를 처리해야 할 필요가 계속해서 있었음에도 자바 기반 배치 프로세싱을 가능케 하는 재사용 가능한 아키텍처 프레임워크에 대한 관심이 낮았습니다. 표준화된, 재사용 가능한 배치 아키텍처의 부재로 인해 클라이언트 엔터프라이즈 IT 기능 내에서 개발된 많은 일회성 사내 솔루션이 개발되었습니다.
SpringSource(지금은 VMware)와 Accenture는 이를 해결하고자 했습니다. 배치 아키텍처의 구현에 대한 Accenture의 실무 산업 및 기술 경험, SpringSource의 깊이 있는 기술 경험, Spring의 입증된 프로그래밍 모델은 함께 앞서 언급한 자바 진영의 부족함을 해결하기 위한 고품질의 엔터프라이즈 소프트웨어를 만들기 위해 함께 노력했습니다. 두 회사 모두 스프링 기반의 배치 아키텍처 솔루션을 개발함으로써 비슷한 문제를 해결하고자 하는 수많은 클라이언트와 협업했습니다. 이러한 노력은 솔루션이 클라이언트들이 겪고 있던 현실 세계의 문제에 적용될 수 있다는 확신을 얻을 수 있게 만들어준 추가적인 디테일과 현실 세계의 제약에 대한 통찰을 얻게 해주었습니다.
Accenture는 지원, 개선, 기존 기능들을 추진하기 위한 자원과 함께 스프링 배치 프로젝트에 이전에 사용하던 배치 처리 아키텍처 프레임워크를 제공했습니다. Accenture의 기여는 메인프레임워 코볼, 유닉스의 C++, 어디서든 사용할 수 있는 자바 등 지난 몇 세대의 걸친 플랫폼에서 배치 아키텍처를 만들고자 노력한 경험에 기반한 것이었습니다.
Accenture와 SpringSource의 협업 방향은 소프트웨어 프로세싱의 접근, 프레임워크, 엔터프라이즈 유저가 배치 애플리케이션을 만들 때 계속해서 사용할 수 있는 도구를 만드는 데 집중했습니다. 그 결과 엔터프라이즈 IT 환경에 표준적이고 입증된 솔루션을 제공하고자 하는 기업과 정부 기관은 스프링 배치를 유용하게 사용하고 있습니다.
일반적인 배치 프로그램은 아래와 같은 경우가 있습니다.
스프링 배치는 이러한 기본적인 배치 반복을 자동화하여 일반적으로 사용자와의 상호 작용 없이 오프라인 환경에서 유사한 트랜잭션을 세트 단위로 처리할 수 있는 기능을 제공합니다. 배치 작업은 대부분의 IT 프로젝트에서 사용되고 있고, 스프링 배치는 견고한 엔터프라이즈 급의 솔루션을 제공하는 유일한 오픈 소스 프레임워크입니다.
스프링 배치는 아래와 같은 비즈니스 시나리오에 사용될 수 있습니다.
스프링 배치는 아래와 같은 기술적인 목표를 달성하는 데 사용될 수 있습니다.