
Spring Batch를 알아보기에 앞서 Batch Processing이란 과연 무엇일까?
배치처리는 컴퓨터가 주기적으로 대량의 반복적인 데이터 작업을 완료하기 위해 사용하는 방식이다.
배치 어플리케이션은 일괄적으로 자동으로 호출되는 작업(Job)에서
소프트웨어 프로그램을 실행하는 방법이다.
사람의 개입을 최소화하고 반복 테스크를 보다 효율적으로 실행할 수 있기 때문에 배치 처리를 사용한다.
Spring Batch는 이러한 특성을 가지는 배치 처리를 할 수 있는 배치 애플리케이션 개발을 가능하게 하기 위해 설계된 경량의 배치 프레임워크다.
Spring Framework의 특성(생산성, POJO 기반 개발 접근 방식, 사용 편의성)을 기반으로 구축되었으며 개발자가 필요할때 더 고급 엔터프라이즈 서비스를 사용할 수 있다.
서비스를 개발하다보면 주기적으로 대용량의 데이터를 처리해야 하는 일이 생긴다.
이부분은 향로님께서 블로그에 너무 잘 설명해 주셨다.

이러한 작업은 주기적으로 처리해야 하기에 사람의 손을 거치지 않고
자동적으로 처리할 수 있다면 매우 좋을 것이다.
그렇기에 배치 작업이라는 방법을 사용하게 된다.
이러한 배치 작업을 할 수 있는 배치 애플리케이션을 손쉽게 만들 수 있도록
Spring 진영에서는 Spring Batch라는 프레임워크를 제공한다.
배치 처리를 하기 위해 다양한 기능을 구현해야 할 것이다.
단순히 로깅부터 실패한 작업을 다시 시도하는 등 많은 기능들이 필요할 것 이다.
이러한 작업을 손 쉽게 할 수 있도록 Spring Batch는 다양한 인터페이스를 제공한다.
그렇기에 개발자는 배치로 수행될 비즈니스 로직에만 집중을 할 수 있게 될 것이다.
참고 자료
What is Batch Processing
What is Batch Processing?
Spring Batch Documentation
Spring Batch 가이드