개인적으로 공부 하는 것이므로 사실과 다를 수 있습니다.
지속적으로 채우고 수정 할 예정입니다.
제가 이해한 배치 시스템은 일련의 작업을 정해진 로직으로 실행하는 것 입니다.
공식 문서에 따르면 Spring Batch는 이러한 배치 시스템을 기반으로 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 재사용 가능한 기능들을 제공한다고 나와있습니다.
그중 Spring Batch는 배치 프로그램 개발을 스프링 프레임워크 구성에 맞게 개발할 수 있는 환경을 제공한다.
예를 들어 1월1일에 작년에 얼마나 목표를 달성했는지 알려주는 서비스가 있다고 가정해보면
JOB : 작년에 얼마나 목표를 달성했는지 알려주는 서비스
STEP 1 : 작년의 목표들을 조회해서 모두 모으고
STEP 2 : 달성한 목표와 달성하지 못한 목표의 갯수를 세서
STEP 3 : 퍼센티지로 달성량을 전달
이러하게 하나의 Job은 여러 Step을 가질 수 있다.