목록 보기
[SpringBatch 연재 09] 입맛에 맞는 배치 처리를 위한 Custom ItemReader/ItemWriter 구현방법 알아보기
백엔드

[SpringBatch 연재 09] 입맛에 맞는 배치 처리를 위한 Custom ItemReader/ItemWriter 구현방법 알아보기

데보션
데보션
2024년 11월 25일

두줄요약

Spring Batch의 기본 Reader/Writer로 부족한 경우를 대비해 커스텀 구현 방법을 다뤘습니다. Querydsl 기반 페이징 Reader와 외부 서비스 호출 Writer를 통해 배치 유연성을 높였습니다.

핵심 내용

  • Spring Batch의 기본 ItemReader/ItemWriter로 부족한 특수 케이스를 위해 커스텀 구현을 추가하는 방법
  • Querydsl과 AbstractPagingItemReader를 활용한 QuerydslPagingItemReader 구현
  • ItemWriter 인터페이스를 직접 구현해 외부 서비스 호출을 수행하는 CustomItemWriter 구성

구조와 흐름

  • QuerydslPagingItemReader에서 EntityManagerFactory와 querySupplier를 받아 페이징 조회
  • offset, limit, chunkSize를 이용한 페이지 단위 읽기
  • 조회 결과를 detach 후 결과 목록에 적재해 배치 처리 안정성 확보

적용해볼 점

  • alwaysReadFromZero 옵션으로 수정 중인 데이터의 누락 가능성 대응
  • Builder 패턴으로 복잡한 Reader 생성 코드 단순화
  • 스프링 빈 등록으로 CustomItemWriter를 싱글턴처럼 재사용

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...