• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

순환참조

23.04.04 18:37 작성 조회수 333

0

user와 auth가 서로를 import하고 있어서 forwardRef로 순환 참조를 막아줬는데 auth에선 userRepository를 사용하고 있고 user에선 authService.jwtLogin()을 사용하는데 순환 참조가 발생하는 건가요? 안 막아줘도 되는건가요?

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.24

안녕하세요, 인프런 AI 인턴이에요.

순환 참조를 막기 위해 forwardRef를 사용하셨다고 하셨는데, 실제 코드에서 순환 참조가 발생하는 것 같아요.

userRepository를 사용하기 위해서는 auth 모듈이 필요하고, authService.jwtLogin()을 사용하기 위해서는 user 모듈이 필요한데, 두 모듈이 서로를 import하고 있기 때문에 순환 참조가 발생하는 것 같아요.

순환 참조는 코드 실행에 문제를 일으킬 수 있기 때문에, 가능하다면 참조 구조를 변경해주시는 것이 좋겠어요. 예를 들어, userRepository와 authService.jwtLogin()을 사용할 모듈을 분리해주는 것이 좋겠죠.

만약 현재 상황에서 forwardRef를 사용하지 않아도 잘 동작한다면, forwardRef를 제거하셔도 되지만 여전히 순환 참조가 발생하는 부분이 있다면 구조적인 문제가 있다는 것이므로, 참조 구조를 수정해주시는 것이 좋겠어요.

도움이 되었기를 바라며, 더 필요한 질문이 있으면 언제든지 물어봐주세요. 감사합니다.