순환참조가 되면 안되는 이유가 궁금합니다.
1756
投稿した質問数 11
순환참조라는 것을 방지하기 위해서 forwardRef메서드를 사용해서 순환참조에러를 방지한다고 말씀해주셨는데, 순환참조가 되면 안되는 이유와 어쨌든 양방향에서 imports를 하는데 forwardRef메서드를 사용하면 어떤 원리로 순환참조에러를 해결할 수 있는지 궁금합니다!
回答 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
프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~
2
80
1
DTO에 대한 질문
1
87
2
백엔드 MVC에서 View의 역할은 무엇인가요?
1
93
2
추가 업데이트 관련 건
0
90
2
nest js 버전문제
0
80
2
mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.
0
103
1
라인 끝에 에러 표시(eslint) 때문에 구글 찾아 보니.
0
74
1
전체 고양이 조회 라우터 중 error.message 오류
0
67
1
캡슐화 추가 설명 중 단일책임원칙 관련 질문
0
104
0
42강 고양이끼리 소통 댓글 구현 중 Schema hasn't been registered for model 'comments' 에러 해결
0
82
1
채팅 이슈
0
133
1
모듈이 더 이상 지원하지 않는답니다
0
206
1
오류가 있습니다
0
106
1
import 에서 오류가 납니다
0
127
1
이런 오류가 나옵니다
0
100
1
에러가 발생합니다
0
109
1
프론트 에러 뜨는데 수정 안해주시나요
0
156
1
emit() broadcast.emit() 질문있습니다
0
101
1
서버연결이 안됩니다.
1
403
1
[PM2][ERROR] Command not found
0
520
1
S3에 업로드까지는 성공했는데 사진이 나오지 않습니다.
0
248
1
error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)
0
601
1
jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.
0
322
2
Ec2로 안하시는 이유가 있을까요?
0
343
1

