배치 처리(Batch Processing)는 일정한 시간 간격 또는 조건에 따라 여러 건의 데이터를 일괄 처리하는 방식입니다.
실시간 처리(Real-Time Processing)는 이벤트 발생과 동시에 데이터를 처리하는 방식입니다.
| 항목 | 배치 처리 | 실시간 처리 |
|---|---|---|
| 처리 시점 | 예약/지정된 시간 | 이벤트 발생 즉시 |
| 처리 방식 | 대량 일괄 처리 | 단건 혹은 소량 처리 |
| 속도 요구 | 상대적으로 느려도 OK | 빠른 응답 필수 |
| 사용 사례 | 정산, 리포트, 백업 등 | 결제, 알림, 트랜잭션 등 |
| 기술 예시 | Spring Batch, Cron | Kafka, Webhook, Socket |
Spring Batch는 스프링 생태계에서 제공하는 대규모 데이터 처리용 프레임워크입니다.
@Bean
public Job sampleJob(JobBuilderFactory jobBuilders, Step step1) {
return jobBuilders.get("sampleJob")
.start(step1)
.build();
}
@Bean
public Step step1(StepBuilderFactory stepBuilders, ItemReader<MyData> reader,
ItemProcessor<MyData, MyData> processor, ItemWriter<MyData> writer) {
return stepBuilders.get("step1")
.<MyData, MyData>chunk(10)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}
📦 배치 처리 적용 예시