[nest.js] 순환 의존성

김민재·2025년 2월 17일

nest.js

목록 보기
34/63

순환 의존성이란?

  • 두 개 이상의 모듈이 서로를 참조하여 의존하는 상황을 말한다. 각 모듈이 다른 모듈에 의존하기 때문에 의존성 해결이 복잡해지고, 애플리케이션이 정상 작동하지 않을 수도 있다.

순환 의존성의 문제점

  1. 의존성 해결 어려움: 두 모듈이 서로를 참조할 경우, 어느 모듈을 먼저 로드해야 하는지 어렵다.

  2. 유지보수의 어려움: 순환 의존성이 존재하는 경우, 코드를 이해하고 유지보수하는 데 어려움이 생긴다.

순환 의존성을 피하는 방법

  1. 기능 분리: 각 모듈이 수행하는 기능을 명확히 정의하고, 서로 필요한 기능을 다른 모듈로 분리한다. 예를 들어, 공통 기능이나 유틸리티 함수는 별도의 libs 모듈로 이동한다.

  2. 인터페이스 사용: 의존성을 줄이기 위해 인터페이스를 정의하고, 모듈 간에 인터페이스를 통해 통신하도록 설정한다.
    ex) 각 모듈에서 필요한 기능을 인터페이스로 정의하고, 이를 구현한 클래스에서 실제 기능을 수행하도록 한다.

  3. 모듈 간 의존성 관리: 모듈이 서로 의존해야 하는 경우, 의존성을 관리할 수 있는 방법을 사용
    ex) UserModule과 AuthModule에서 공통적으로 필요한 기능을 CommonModule로 분리하여 두 모듈이 CommonModule을 참조하도록 한다.

profile
개발 경험치 쌓는 곳

0개의 댓글