NX 의존성 흐름
위 다이어그램은 DTA-WIDE 모노레포 구조의 모듈 간 의존성 흐름을 보여줍니다:
의존성 계층 구조
- apps: 최종 배포 가능한 애플리케이션 (dta-wide-api, web 등)
- feature: 도메인별 기능을 구현한 라이브러리 (auth, user 등)
- shared: 여러 모듈에서 공유하는 유틸리티 라이브러리 (dto, interfaces 등)
- core: 핵심 인프라를 구현한 라이브러리 (database, config 등)
의존성 규칙
-
단방향 의존성: 상위 계층은 하위 계층에 의존할 수 있습니다.
- apps → feature → shared/core
-
금지된 의존성:
- 하위 계층은 상위 계층에 의존할 수 없습니다 (core → shared → feature → apps)
- 동일 계층 내 순환 의존성은 금지됩니다
-
권장 사항:
- feature 모듈은 다른 feature 모듈에 직접 의존하지 않고 shared를 통해 통신
- core 모듈은 다른 모듈에 의존하지 않음
- shared 모듈은 core에만 의존 가능
이 의존성 규칙을 준수하면 코드의 모듈성, 재사용성 및 유지보수성이 향상됩니다.
참고: Mermaid 다이어그램이 올바르게 렌더링되지 않는 경우, 팀에서 다음과 같은 방법으로 이 문서를 개선할 수 있습니다:
- Mermaid Live Editor에서 위 코드를 복사하여 SVG/PNG 이미지 생성
- 생성된 이미지를
/docs/assets/images/nx-dependency-diagram.png위치에 저장 - 이 Markdown 파일에서 이미지를 참조하도록 수정