책임 분리 점검표

모듈은 묶고, 컨트롤러는 받고, 서비스는 처리한다

NestJS의 기본 구조는 요청 흐름과 비즈니스 로직을 분리해 테스트와 재사용이 쉬운 애플리케이션 단위를 만듭니다.

Module

기능 영역의 경계

관련 컨트롤러와 프로바이더를 하나의 도메인 단위로 묶고 imports/exports로 공개 범위를 정합니다.

Controller

요청과 응답의 입구

라우팅, 파라미터, 요청 본문을 해석하고 실제 규칙은 서비스 메서드로 넘깁니다.

Service

비즈니스 로직의 중심

데이터 처리, 계산, 외부 API 호출처럼 실제 일을 수행하고 여러 컨트롤러에서 재사용됩니다.

요청 하나가 통과하는 책임 경계

ClientHTTP 요청
Controller입력 해석
Service규칙 실행
Provider저장소·외부 연동
Response결과 반환

컨트롤러는 얇게

인증, 검증, 응답 형식 조정 외의 핵심 규칙은 서비스로 보냅니다.

서비스는 독립적으로

HTTP 세부사항에 덜 의존할수록 재사용과 단위 테스트가 쉬워집니다.

모듈은 경계로

exports를 최소화해 도메인 내부 구현이 밖으로 새지 않게 합니다.