NestJS · 요청 처리 흐름

미들웨어·가드·파이프·인터셉터의 실행 위치

NestJS 요청 파이프라인의 각 장치는 비슷해 보이지만, 실행 시점과 책임이 다르기 때문에 인증·검증·변환·관측을 같은 곳에 몰아넣으면 안 된다.

01

공통 전처리

middleware가 raw request에 가까운 단계에서 logging, cookie parsing 등을 수행한다.

02

Guard 접근 판정

guard가 사용자 신원과 권한을 확인해 handler 진입을 막거나 허용한다.

03

입력 정제

pipe가 param과 body를 변환·검증해 controller에 안전한 값을 넘긴다.

04

전후 처리

interceptor가 실행 시간 측정, response mapping, cache 같은 횡단 관심사를 다룬다.

Middleware
프레임워크 앞단 Express/Fastify 요청 객체를 다루는 범용 처리
DI 제약 확인
Guard
허용/거부 JWT 인증, role, ownership 같은 접근 정책
true/false 또는 예외
Pipe
입력 품질 DTO validation, ParseIntPipe, transform
권한 판단과 분리
Interceptor
감싸기 handler 전후의 Observable 흐름을 관찰·변환
오류 변환은 filter와 구분

시점 · 입력 · 권한 점검

시점 정책이 필요한 실행 위치에 배치돼 있다.
입력 controller에 들어온 값은 이미 DTO 기준으로 검증된다.
권한 guard가 화면 표시가 아니라 API 접근을 막는다.
중복 같은 validation이나 logging이 여러 계층에 흩어져 있지 않다.