본문 바로가기

개발/SpringBatch4

Spring Batch에서 JpaPagingItemReader와 JpaCursorItemReader의 이해 Spring Batch는 대용량 데이터 처리에 특화된 프레임워크로, 다양한 데이터 읽기 방식을 제공합니다. 특히, JpaPagingItemReader 와 JpaCursorItemReader 는 JPA를 사용하여 데이터베이스에서 데이터를 읽는 두 가지 주요 방법입니다. JpaPagingItemReader 개념 JpaPagingItemReader는 페이징 기법을 사용하여 데이터를 페이지 단위로 나누어 읽습니다. 이 방식은 한 번에 모든 데이터를 로드하는 대신, 설정된 페이지 크기에 따라 작은 데이터 집합을 순차적으로 처리합니다. 장점 메모리 효율성: 대용량 데이터를 메모리에 한 번에 로딩하지 않고, 페이지 단위로 나누어 처리하기 때문에 메모리 사용을 최적화 할 수 있습니다. 병렬 처리 용이: 데이터를 페이지.. 2024. 2. 27.
Spring Batch의 핵심: Tasklet과 Chunk 기반 처리 이해하기 Tasklet 정의 Tasklet은 Spring Batch의 기본 구성 요소 중 하나로, 작업(step) 내에서 단일 작업을 수행하는데 사용됩니다. Tasklet은 사용자 정의 코드를 통해 특정 작업을 실행하며, 주로 단순하거나 일회성 작업에 사용됩니다. 사용 사례 파일 전송, 간단한 데이터 변환, 상태 업데이트 등 단일 단계로 완료할 수 있는 작업에 적합합니다. 특징 Tasklet은 배치 작업을 단일 작업으로 간주하여 한 번에 처리하려고 하므로 Chunk 방식에서 Chunk 크기만큼 데이터를 나누어 처리하는 방식과 상반되어 대용량에는 적합하지 않습니다. Tasklet 내에서 실행할 로직을 직접 구현합니다. Tasklet 인터페이스를 구현하며, execute 메서드를 오버라이드하여 사용자 정의 작업을 정.. 2024. 2. 26.
Spring batch 그게 뭔데? Spring batch 가 뭔데? Spring Batch는 대용량 데이터 처리를 위한 애플리케이션을 개발할 수 있도록 지원하는 경량, 포괄적인 배치 프레임워크 입니다. Spring batch 왜 사용하는데? 1. 대규모 데이터 처리의 효율성 Spring Batch는 대용량 데이터를 효율적으로 처리할 수 있는 설계가 특징입니다. Chunk 기반 처리 방식을 통해, 데이터를 덩어리(chunk) 단위로 나누어 처리함으로써 메모리 사용량을 최적화하고, 처리 속도를 개선할 수 있습니다. Chunk 기반 처리 방식 원리 1) 데이터 분할 대규모 데이터 세트를 작은 "Chunk"로 나눕니다. 각 Chunk는 처리할 데이터의 한 묶음을 나타냅니다. 이 크기는 설정 가능하며, 배치 작업의 요구 사항과 시스템의 메모리 제.. 2024. 2. 25.
[Spring Batch] 2. Spring Batch 용어 Job Job은 배치처리 과정을 하나의 단위로 만들어 놓은 객체입니다. 여러 Step 인스턴스를 포함하는 컨테이너입니다. JobInstance Job의 실행 단위를 나타냅니다. Job을 실행시키면 하나의 JobInstance가 생성됩니다. Job Parameter가 같은 경우 테이블에 기록되지 않습니다. -> 동일한 Job Parameter는 여러개 존재할 수 없습니다. 예를 들어 일일 매출 통계를 구할 때 1월 1일에 실행시킨 일 매출 통계가 실패가 나서 다시 실행시키더라도 JobInstance는 1월 1일의 매출에 대한 데이터만 처리하게 됩니다. JobParameters Spring Batch가 실행될 때 외부에서 받을 수 있는 파라미터입니다. Job Parameter를 사용하기 위해서는 Spring.. 2023. 1. 17.