멤버 삭제 로직을 구현하는 데 아래와 같은 오류 메시지가 뜨면서 빌드가 되지 않았다.

스크린샷 2023-12-09 오후 5.55.53.png

읽어보니 순환 의존성때문에 발생하는 문제였기에 문제 상황과 이를 어떻게 해결했는지 간단하게 정리해봤다.

문제 상황


스크린샷 2023-12-09 오후 6.06.56.png

스크린샷 2023-12-09 오후 6.07.08.png

BoardModule ↔ MemberModule

MemberModule ↔ ReportModule

각 모듈의 서비스 로직이 서로의 서비스 함수를 호출할 필요가 있어서 위와 같이 서로 imports 해줬다.

이렇게 서로 상대방에게 의존성을 가지게 되면 Circular Dependency가 발생해 NestJS 웹 어플리케이션이 빌드되지 못한다.

해결 방법


일단 Circular Dependency가 최대한 안 생기 게 어플리케이션을 설계하는 게 가장 최고이다.