핵심 요약
반려생활이 Spring Batch를 도입해 10시간 걸리던 숙소 연동 배치를 20분으로 단축하고, 데이터 동기화 안정성과 운영 효율성을 크게 개선했습니다.
구현 방법
- 멀티스레드 Step과 TaskExecutor로 상세 정보 API를 병렬 호출
- CompletableFuture를 활용한 이미지 I/O의 비동기 처리
- 커스텀 ItemReader(List<List>)로 대용량 데이터를 한 번에 읽어 처리
- 데이터 수집/반영을 독립된 Job으로 분리하고 JobParameter로 재시작 및 부분 동기화를 지원
주요 결과
- 전체 배치 실행 시간 10시간→20분으로 단축(약 96.7% 개선)
- 이미지 처리 시간 12분→5분으로 감소(약 59%)
- 각 Step의 트랜잭션 독립으로 실패 시 재시작이 용이
- 부분 동기화 가능으로 운영 유연성 향상


