💡 에러 메세지
[2023-10-12 12:06:27][ERROR][ContextLoader.java-main] Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/spring/main-application-config.xml]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name '{제거된 패키지 경로의 컨트롤러}’conflicts with existing, non-compatible bean definition of same name and class ‘${최신 경로의 컨트롤러}’
제거 된 컨트롤러와 새로 만든 컨트롤러가 둘 다 있어서 지금 bean 이름이 충돌나고 있다고 에러가 뜸
프로젝트 클린 소용 없었고 이클립스 Tomcat 서버를 지웠다가 다시 등록했다.
우선 파일을 확인해봤는데 실제로 없었다.
${제거된 패키지 경로의 컨트롤러}는 제거했다고 안내 받음. 딱히 추가 설정 필요 없이 ${추가된 패키지 경로의 컨트롤러}의 Controller bean이 등록되어야 하는 상태였음.
java, xml 파일 검색해봐도 없었음.
뭔가 캐쉬가 남아있나 싶어서 프로젝트 클린을 3번 정도 진행해봤는데도 안되는 상태였다.
그럼 일단 빈 충돌되는 컨트롤러 명을 냅다 프로젝트 전체로 검색했음.
.svn
숨김 폴더 하위에 pristine
폴더에서 발견했음.
이 부분이 관련이 있나 싶어서 SVN > Cleanup > Vacuum pristine copies 를 진행해줬다. 결과적으론 혐의 없었음. 당연함 - 왜냐면 SVN diff 하거나 할 때 사용하는 파일이기 때문에 빌드 시에 관련이 없음.
그와중에 pristine 처음봐서 chatGPT에게 물어봤다.
.svn/pristine
디렉토리는 Apache Subversion(SVN) 버전 관리 시스템에서 내부적으로 사용되는 디렉토리입니다. 이 디렉토리에는 SVN 클라이언트에서 사용되는 파일의 원본(plaintext) 데이터가 저장되어 있습니다.
보통.svn/pristine
디렉토리에는 SVN 저장소의 파일에 대한 각각의 버전의 원본 파일이 저장됩니다. 이 파일들은 변경 내용과 비교할 때 사용됩니다..svn/pristine
디렉토리의 내용은 일반적으로 사용자가 직접 조작하거나 수정할 필요가 없는 SVN 내부의 데이터입니다.
때때로 이 디렉토리가 크기가 커서 디스크 공간을 차지하는 문제가 발생할 수 있습니다. 그럴 경우svn cleanup
명령을 사용하여 SVN 작업 디렉토리를 정리하거나, 불필요한 작업 디렉토리를 삭제하여 디스크 공간을 확보할 수 있습니다.
아무런 문제가 없다면 보통.svn/pristine
디렉토리의 내용을 직접 수정하거나 삭제하는 것은 권장되지 않습니다. SVN 클라이언트를 통해 적절한 명령을 사용하여 관리해야 합니다.
소용없는 것 확인하고 혹시나 서버에 캐쉬가 남아있는건가? 라는 생각이 들어서(맞는 추측인지도 잘 모르겠음) 이클립스에서 제거했다가 다시 등록하니까 문제 없이 해결됐다.