핵심 요약
SSG.COM의 장보기 지원금 소멸 알림 배치에서 메시지 발송 대기 중 DB 커넥션 점유를 줄이고 배치 안정성을 높이기 위해 Chunk 트랜잭션의 책임 범위를 조정하고 ResourcelessTransactionManager를 도입했습니다.
구현 방법
- Reader → Processor → Writer 흐름은 유지하되, DB 리소스 사용 구간과 메시지 발송 대기 구간의 경계를 분리
- Spring Batch의 ResourcelessTransactionManager를 적용해 트랜잭션 범위를 줄임
- 대량 발송 시 병렬 처리로 여러 스레드가 발송 작업을 나눠 처리
- 메시지 발송 API 호출 자체를 바꾸지 않고, 트랜잭션 관리로 커넥션 점유 시간을 축소
주요 결과
- DB 커넥션 점유 시간 감소로 Connection Pool 부담 완화
- 배치 처리의 안정성 및 대량 발송 시 예측 가능한 운영 가능성 향상
- 시스템 리소스 사용 효율성 향상에 기여


