Spring Batch
필요성
단발성으로 대용량의 데이터를 처리하는 배치 애플리케이션을 위해 제공되는 프레임워크
메모리, IO, CPU 등의 자원에 대한 고민을 최소화하고, 중간에 장애가 발생하더라도 쉽게 복구할 수 있게 도와준다.
Quartz는 스케줄러의 역할이지, Batch 와 같이 대용량 데이터 배치 처리에 대한 기능을 지원하지 않는다. 정해진 스케줄마다 Quartz가 Spring Batch를 실행하도록 할 수 있다.
컴포넌트
Job
하나의 배치 작업 단위를 의미한다.
배치 프로세스 구동 시 원하는 Job만 지정해 실행할 수 있다.
Step
하나의 Job을 통해 여러 Step들을 실행시킬 수 있다.
조건 분기(특정 조건을 만족할 때 특정 Step을 수행), Flow 기반 구성을 통한 병렬 실행 등이 가능하다.
Tasklet
Step안에서 단일로 수행될 커스텀한 기능들을 선언할 수 있다.
Reader / Writer
처리할 데이터를 읽거나, 처리 완료된 데이터를 쓰는 작업을 맡는다.

Last updated