
코딩 에이전트가 Spring을 못 짠다면, component scan부터 걷어내 보세요
두줄요약
component scan으로 테스트 설정이 자동 등록돼 발생한 빈 충돌을 분석했습니다. 명시적 빈 등록과 컨텍스트 검증으로 에이전트 작업의 예측 가능성을 높였습니다.
문제 상황
- 라이브러리 버전 업그레이드 후 컨트롤러 테스트의 반복적인
BeanDefinitionOverrideException - 동일 패키지의 권한 검사 통합 테스트 설정이 다른 테스트 컨텍스트에 유입된 빈 충돌
원인 분석
@SpringBootApplication의 하위 패키지 component scan에 테스트용@Configuration포함- 파일 위치에 따라 달라지는 빈 등록 범위와 변경 파일·실패 테스트 간 거리
- 에이전트가 패키지 구조와 암묵적 빈 등록 경로를 추적하기 어려운 환경
해결 방법
- component scan 대신
@AutoConfiguration,@Import,AutoConfiguration.imports기반의 명시 등록 - 테스트 설정을
@TestConfiguration으로 전환하고 필요한 테스트에서만@Import - 문자열 기반 조건 대신 클래스 기반
@ConditionalOnClass,@Value대신@ConfigurationProperties활용
주의할 점
- 명시 등록 환경의
@Import누락으로 발생하는 404와 미등록 빈 검증 필요 - 실제 애플리케이션 컨텍스트에서 빈·요청 매핑 등록 여부 확인
- 테스트 비활성화·조건 완화·skip 추가를 통한 통과 여부와 테스트 diff 별도 검토


