작성
·
1.6K
답변 1
2
안녕하세요.
질문이 달린지 오래되어 이미 해결하셨을지도 모르는 문제이지만 짧은 지식으로 답변드리겠습니다.
1. 순환참조가 되면 안되는 이유
"A ->B" 우리는 A는 B에 의존한다. 라고 표현합니다. 그렇다면 순환 참조의 경우를 살펴보겠습니다
"A -> B -> A" A는 B에 의존성이 있고 B도 A의 의존성이 있습니다. 이런 경우는 어떻게 될까요?
A가 초기화 되기도 전에 B가 A를 의존하고 있기 때문에 에러가 나게 됩니다. 모듈의 초기화 순서에 대해서는 정확히는 모르지만 의존성 마지막 순서에 있는 녀석부터 모듈을 초기화하는 것 같습니다.
2. forwardRef
forwardRef는 아직 정의되지 않은 클래스를 참조할 수 있게 만들어줍니다.
A가 초기화 되지 않았지만 B가 A를 참조할 수 있게 만들어주는 것입니다.
간단하게 설명해드렸지만 더 궁금하시다면 구글링을 해보시는걸 추천드립니다.
도움이 될만한 사이트들을 남겨드리겠습니다.
https://jeonghwan-kim.github.io/dev/2020/03/24/circular-dependancy.html
https://docs.nestjs.com/fundamentals/circular-dependency