NestJS - Circular Dependency
https://docs.nestjs.com/fundamentals/circular-dependency
A circular dependency occurs when two classes depend on each other. For example, class A needs class B, and class B also needs class A. Circular dependencies can arise in Nest between modules and between providers.
공식문서를 확인해보면
순환의존성이란 두개의 클래스가 서로를 의존하고 있을때 발생한다고 한다.
(예를들어 클래스 A가 B를 필요로하고, 클래스 B가 A를 필요로 하는 경우)
순환 의존성은 가능하다면 피하는것이 좋지만, 항상 그럴수는 없다!
*문제발생
Module1
Module2
이렇게 두개의 모듈이 있다고 가정하였을 때,
Module1의 Service1과
Module2의 Service2가 서로 의존 주입을 하려고 하면 circular dependency 문제가 발생한다.
*해결방법
- @nestjs/common에서 패키지로 제공해주는 forwardRef() 를 사용한다.
이렇게 모듈을 import 할때 forwardRef를 명시해준다.
모듈을 주입하고난 뒤 Service를 주입할때 또 에러가 뜬다 ㅋㅋ
그럼 service를 주입할때에도 이런식으로 forwardRef를 명시해준다.
'framwork > NestJs' 카테고리의 다른 글
[NestJS] Queue 사용하기 (Redis) (0) | 2024.12.26 |
---|---|
[Nestjs] Custom Validator 데코레이터 적용하기 (1) | 2024.11.22 |
[Nestjs] multer로 이미지 파일 업로드하기 (2) | 2024.11.19 |
[NestJS] LifeCycle (생명주기) (1) | 2024.07.02 |