[Nest.JS] 순환 참조 하기

손재명·2023년 2월 17일
0

문제 및 히스토리

NestJS 를 통해 웹소켓 프로젝트 구현중에 순환 종속성 문제가 발생했다.

개발할 때 가능한, 순환 종속을 피해서 개발해야하지만,
가끔은 순환 종속을 피하기 어려운 상황들이 많다.

이곳저곳에 다 불러다가 사용하면, 한개의 서버에서 소켓 서버가 여러개로 나눠질 수 있고 예기치 못한 오류가 발생할 수 있다.
또한 한 GateWay에 모든 기능을 구현하는건 굉장히 비효율적이기에 기능별로 쪼개서 빠르게 개발하려면 가끔은 순환 종속을 맞닥뜨린다.

우선적으로 순환 종속을 임시로 허용하고, 개발이 완료 된 후 기술부채들 정리하며 순환종속을 없애야한다.

순환 종속성 오류 해결

@nestjs/common 에서 패키지로 제공해주는 forwardRef() 기능을 사용하면 해결할 수 있다.
xxx.module.ts 에서 모듈을 imports 할 때 forwardRef() 를 사용해서 모듈의 중첩을 허용해줍니다.

import { Module, forwardRef } from '@nestjs/common';
// moduleA
@Module({
    imports: [ModuleB],
    ///...
})

// moduleB
@Module({
    imports: [ModuleA],
    ///...
})```
profile
”빠르게 성장하는 로켓 개발자“ 성장하는 과정을 기록하다.

0개의 댓글