핵심 요약
월급쟁이부자들이 ApplicationContext 캐싱 이슈로 인한 Spring Batch 테스트 성능 저하를 개선하고 CI 피드백 시간을 크게 단축했습니다.
구현 방법
- @MockKBean 대신 mockk()로 Mock 객체를 생성해 Spring Context 로딩을 줄임
- 필요 시에만 @SpringBootTest/@SpringBatchTest를 사용하고, 불필요한 중복 어노테이션 제거
- 단위/데이터 레이어별로 테스트 범위를 구분하여 @DataJpaTest와 @AutoConfigureTestDatabase(replace = Replace.NONE) 적용
- RedisService 등 특정 컴포넌트만 최소 구성으로 테스트에 주입
- 메모리 과부하 완화를 위해 JVM 힙 메모리 512MB에서 1GB로 증설(임시 완화책)
주요 결과
- 힙 사용량: 744MB → 415MB, Size: 1073MB → 536MB (약 40–50% 감소)
- CI 실행 시간: 50분대에서 4–5분대으로 단축
- 테스트 수 증가에도 안정적 피드백 제공 (419개에서 720개 테스트 수준에서의 개선)


