NestJS 요청 처리 흐름

NestJS API 서버 요청 파이프라인

NestJS 요청은 Middleware, Guard, Pipe, Interceptor, Controller, Service, Exception Filter를 지나며 각 단계가 다른 책임을 가집니다.

01

Middleware

요청 ID, 로깅, 원시 헤더 처리처럼 라우터 전 공통 작업을 수행합니다.

전처리
02

Guard

인증과 권한을 확인해 핸들러 실행 자체를 허용하거나 차단합니다.

CanActivate
03

Pipe

DTO 변환, 유효성 검사, 파라미터 파싱으로 Controller 입력을 정리합니다.

Validation
04

Controller

HTTP 계약을 받고 Service의 유스케이스 메서드로 위임합니다.

Route
05

Service

트랜잭션, 도메인 규칙, Repository 호출을 묶어 비즈니스 결과를 만듭니다.

Use case
DTO
입력 계약 외부 요청의 형태와 검증 규칙을 Service 내부 모델과 분리합니다.
class-validator
Repository
저장소 접근 ORM 질의와 영속성 세부사항을 Service 밖으로 숨깁니다.
테스트 대체 쉬움
Filter
오류 응답 표준화 예외를 상태 코드와 메시지 형식으로 통일합니다.
민감 정보 제거

API 품질 기준

Controller 얇게 Controller에는 라우팅과 요청 변환만 두고 도메인 판단은 Service로 보냅니다.
권한 재확인 Guard가 통과해도 리소스 소유권은 Service에서 다시 확인해야 합니다.
예외 형식 검증 오류와 도메인 오류의 응답 형식이 일관되어야 합니다.