[Spring Batch] - ChunkProvider 와 ChunkProcessor
출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 [Spring Batch] - ItemWriter [Spring Batch] - ItemProcessor [Spring Batch] - ItemReader [Spring Batch] - ChunkProvider 와 ChunkProcessor [Spring Batch] - ChunkOrientedTasklet [Spring Batch] - Chunk 기반 Step ChunkProviderChunkProvider는 ItemReader에서 읽어온 데이터를 Chunk 단위로 분할하여 ItemProcessor 및 ItemWriter에 전달하는 객체 ChunkProvider는 스텝을 실행할 때 Chunk<I> 객체를 만들고 Chunk의 크기를 지정합니다. 예를 들어, Chunk의 크기를 10으로 설정하면, ItemReader에서 10개의 데이터를 읽어와서 ItemProcessor 와 ItemWriter에 전달합니다. 이러한 과정을 Chunk 단위로 반복하여 모든 데이터를 처리합니다. ChunkProvider는 ItemReader에서 반환된 모든 데이터를 저장하지 않고, Chunk 단위로 처리하기 때문에 대용량 데이터를 처리하는 데 매우 효율적입니다. 이를 통해 메모리 사용량을 최소화하고, 처리 속도를 향상시킬 수 있습니다. Spring Batch에서는 기본적으로 SimpleChunkProvider를 제공합니다. SimpleChunkProvider는 Chunk의 크기를 지정하고, ItemReader에서 읽어온 데이터를 Chunk 단위로 분할하여 ItemProcessor 및 ItemWriter에 전달합니다. 또한, SimpleChunkProvider는 실패 시 롤백을 수행할 수 있도록 구성할 수 있습니다.