본 문서는 Step 구현 방식인 Tasklet과 Chunk 지향 처리에 대해 정리한 기록입니다.
Step은 설정에 따라 두 가지 흐름으로 작업이 나뉩니다.
대부분의 실무 배치 프로세스는 Chunk 지향 방식으로 구현됩니다. 내부 흐름은 다음과 같이 반복됩니다.
Commit Interval(Chunk Size) 만큼 반복될 때까지 데이터를 메모리(List)에 모읍니다.List를 ItemWriter에 한 번에 던져 일괄 저장(Bulk Insert/Update)을 수행하고 트랜잭션을 커밋합니다.천만 건의 데이터를 처리할 때 모든 데이터를 메모리에 올리면 즉시 OutOfMemoryError가 발생합니다. Chunk 지향 처리는 데이터를 일정 단위(예: 1000건)로 끊어서 읽고, 가공하고, DB에 커밋하고 메모리를 비우는 과정을 반복합니다. 이로 인해 메모리를 일관되게 적게 소모하면서 대용량 데이터를 안전하게 처리할 수 있습니다.