핵심 요약
무신사에서 Jenkins 기반 배치의 Hang 문제를 JFR로 추적 진단하고, N+1 쿼리와 Aurora RO 포화 문제를 해결해 처리 속도와 안정성을 크게 개선했습니다.
구현 방법
- Spring Batch의 Tasklet을 Reader/Writer로 분리하고 조회를 Reader로 통합
- JVM 한 줄 옵션으로 JFR 활성화 및 종료 시 자동 아카이브
- JMC로 Threads/Socket I/O/Method Profiling 분석 및 원인 검증
주요 결과
- 단건 평균 526.7s → 41.2s, 최악 5035s → 113s
- Aurora RO 읽기 138회 → 32회 축소, 총 대기 시간 대폭 감소
- 대형 배치에서 6,528ms → 768ms 등 8–14× 개선



