본문으로 건너뛰기

NX 의존성 흐름

위 다이어그램은 DTA-WIDE 모노레포 구조의 모듈 간 의존성 흐름을 보여줍니다:

의존성 계층 구조

  1. apps: 최종 배포 가능한 애플리케이션 (dta-wide-api, web 등)
  2. feature: 도메인별 기능을 구현한 라이브러리 (auth, user 등)
  3. shared: 여러 모듈에서 공유하는 유틸리티 라이브러리 (dto, interfaces 등)
  4. core: 핵심 인프라를 구현한 라이브러리 (database, config 등)

의존성 규칙

  • 단방향 의존성: 상위 계층은 하위 계층에 의존할 수 있습니다.

    • apps → feature → shared/core
  • 금지된 의존성:

    • 하위 계층은 상위 계층에 의존할 수 없습니다 (core → shared → feature → apps)
    • 동일 계층 내 순환 의존성은 금지됩니다
  • 권장 사항:

    • feature 모듈은 다른 feature 모듈에 직접 의존하지 않고 shared를 통해 통신
    • core 모듈은 다른 모듈에 의존하지 않음
    • shared 모듈은 core에만 의존 가능

이 의존성 규칙을 준수하면 코드의 모듈성, 재사용성 및 유지보수성이 향상됩니다.


참고: Mermaid 다이어그램이 올바르게 렌더링되지 않는 경우, 팀에서 다음과 같은 방법으로 이 문서를 개선할 수 있습니다:

  1. Mermaid Live Editor에서 위 코드를 복사하여 SVG/PNG 이미지 생성
  2. 생성된 이미지를 /docs/assets/images/nx-dependency-diagram.png 위치에 저장
  3. 이 Markdown 파일에서 이미지를 참조하도록 수정