아키텍처 지도

NestJS의 특징과 아키텍처의 책임 경계

NestJS 아키텍처는 모듈이 공개 범위를 정하고, 컨트롤러가 요청을 받아 서비스 규칙으로 넘기는 책임 분리로 읽습니다.

Module

기능 공개 범위

imports, providers, exports를 통해 기능 단위의 의존 표면을 정합니다.

Controller

요청 진입점

HTTP 경로와 DTO 검증을 얇게 처리하고 비즈니스 판단은 service로 넘깁니다.

Provider

교체 가능한 규칙

service와 adapter를 DI 토큰으로 묶어 테스트와 구현 교체가 가능하게 둡니다.

범위

다른 모듈에서 쓰는 provider만 export되는지 확인합니다.

token

구현 교체가 필요한 의존성은 명시적인 provider token을 둡니다.

test

controller 테스트와 service 테스트의 mock 경계를 분리합니다.