1. 문제 상황

SecurityConfiguration 에서 회원의 서비스 계층 객체인 memberService를 생성자 주입받고 있었음

어플리케이션 실행 시 다음과 같은 순환 참조 오류가 발생

화면 캡처 2024-10-17 203152.png

2. 문제 원인 파악

MemberService는 다음과 같은 의존성들을 주입받고 있었음

화면 캡처 2024-10-17 204228.png

  1. MemberRepository → 일반 회원의 JPA 리포지토리 객체
  2. CounselorRepository → 상담사 회원의 JPA 리포지토리 객체
  3. PasswordEncoder → 비밀번호를 DB에 저장하기 전 암호화하는 데 필요
  4. CustomAuthorityUtils → 회원에게 커스텀 Role을 부여하기 위해 필요
  5. ReservationService → 상담 예약에 대한 서비스 계층 객체

이중 1, 2, 5번은 시큐리티와 완전히 무관한 것이 명백하였기 때문에 용의 선상에서 제외

SecurityConfiguration 또한 MemberService와 동일하게 CustomAuthorityUtils 객체를 주입받고 있었기 때문에, 처음에는 CustomAuthorityUtils 와 관련해서 의존성 사이클이 형성되는 것이 아닌가 생각했으나 아닌 것으로 판명