
Spring Batch는 대용량 데이터를 효율적으로 처리하기 위한 배치 처리 프레임워크이다.
주기적으로 반복되는 작업(예: 통계 계산, 로그 분석, DB 정리 등)을 안정적으로 실행하고, 실패 복구 및 재시작 기능까지 제공합니다.
대량의 데이터를 "읽고 -> 가공하고 -> 저장하는" 흐름을 체계적으로 관리할 수 있게 도와주는 틀입니다.
언제 사용할까?
Job: 전체 배치 작업의 단위
Step: Job 안의 실행 단위
ItemReader: 데이터 입력
ItemProcessor (선택): 데이터 가공
ItemWriter: 데이터 출력
Spring Batch는 데이터를 청크(chunk) 단위로 처리한다.
예를 들어:
[읽기] 10건 -> [가공] 10건 -> [저장] 10건 (커밋)
@Bean
public Job exampleJob(JobBuilderFactory jobBuilderFactory, Step step) {
return jobBuilderFactory.get("exampleJob")
.start(step)
.build();
}
@Bean
public Step step(StepBuilderFactory stepBuilderFactory,
ItemReader<MyItem> reader,
ItemProcessor<MyItem, MyItem> processor,
ItemWriter<MyItem> writer) {
return stepBuilderFactory.get("step")
.<MyItem, MyItem>chunk(10)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}
Spring Batch 자체에는 스케줄링 기능이 없지만, 아래 도구들과 함께 사용 가능