- Spring 프레임워크에서 Batch Job을 간단히 설정하고 실행할 수 있게 도와주는 프레임워크
구조
- Spring Batch는 아래와 같은 구조로 동작한다

- Job - Batch 처리 과정을 하나의 단위로 만들어놓은 객체, 하나의 Job은 여러 Step을 포함한다
- JobRepository - Job Batch 처리 과정에 대한 메타데이터를 관리한다
- JobLauncher - 클라이언트의 요청을 받아 Batch를 실행시키는 인터페이스
- Step - Job 내 실제 Batch 작업을 수행하는 단위, 이를 Item으로 분할해서 동작하는 듯
- ItemReader - Batch 데이터를 읽어오는 인터페이스
- ItemProcessor - Reader에서 읽어온 데이터를 Write 하기 전 필요한 로직을 처리한다
- ItemWriter - Batch 데이터를 Insert 또는 Update 하는 인터페이스
방식
- 크게는 Tasklet과 Chunk 방식으로 나눠지는데 보통은 Chunk 방식을 주로 사용한다고 함
- Tasklet - 단일 작업 수행, 하나의 Job이 큰 경우 Step을 분할하여 사용할 수 있다고 함
- ItemReader, ItemProcessor, ItemWriter 가 하나로 묶인 형태
- Chunk - 일정 갯수만큼 여러 Job을 수행할 수 있음, 이 일정 갯수를 Chunk만큼 수행한다고도 함