목록 보기
코딩 에이전트가 Spring을 못 짠다면, component scan부터 걷어내 보세요
아키텍처

코딩 에이전트가 Spring을 못 짠다면, component scan부터 걷어내 보세요

flex
flex
2026년 10월 13일

두줄요약

component scan으로 테스트 설정이 자동 등록돼 발생한 빈 충돌을 분석했습니다. 명시적 빈 등록과 컨텍스트 검증으로 에이전트 작업의 예측 가능성을 높였습니다.

문제 상황

  • 라이브러리 버전 업그레이드 후 컨트롤러 테스트의 반복적인 BeanDefinitionOverrideException
  • 동일 패키지의 권한 검사 통합 테스트 설정이 다른 테스트 컨텍스트에 유입된 빈 충돌

원인 분석

  • @SpringBootApplication의 하위 패키지 component scan에 테스트용 @Configuration 포함
  • 파일 위치에 따라 달라지는 빈 등록 범위와 변경 파일·실패 테스트 간 거리
  • 에이전트가 패키지 구조와 암묵적 빈 등록 경로를 추적하기 어려운 환경

해결 방법

  • component scan 대신 @AutoConfiguration, @Import, AutoConfiguration.imports 기반의 명시 등록
  • 테스트 설정을 @TestConfiguration으로 전환하고 필요한 테스트에서만 @Import
  • 문자열 기반 조건 대신 클래스 기반 @ConditionalOnClass, @Value 대신 @ConfigurationProperties 활용

주의할 점

  • 명시 등록 환경의 @Import 누락으로 발생하는 404와 미등록 빈 검증 필요
  • 실제 애플리케이션 컨텍스트에서 빈·요청 매핑 등록 여부 확인
  • 테스트 비활성화·조건 완화·skip 추가를 통한 통과 여부와 테스트 diff 별도 검토

다음 읽기

#test 주제를 이어서 읽기

격리 안 된 테스트의 초록불은, 에이전트가 믿을 수 없습니다

AI 에이전트가 스스로 수정하려면 먼저 테스트 결과를 믿을 수 있어야 했습니다. 그래서 테스트 격리와 실행 경로 통일로 오염과 환경 차이를 줄였습니다.

flex
flex
AI

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...