요청 생명주기는 NestJS에서 요청이 통과하는 구성 요소의 정확한 순서입니다 — middleware, guard, interceptor, pipe, 핸들러, 그 다음 다시 interceptor, 그리고 오류 시 exception filter. 정확한 순서를 아는 것은 각 로직 조각이 언제 실행되는지 이해하는 데 결정적입니다.
전체 순서
들어오는 요청
│
▼
1. MIDDLEWARE (Express 스타일; 원시 req/res; 가장 먼저 실행)
│
▼
2. GUARD (인가 — 계속하려면 true, 차단하려면 false/throw)
│
▼
3. INTERCEPTOR (이전) (핸들러 이전 로직 — 타이밍 시작 등)
│
▼
4. PIPE (핸들러 인수 검증/변환 — DTO 검증)
│
▼
5. 라우트 핸들러 (controller 메서드 실행)
│
▼
6. INTERCEPTOR (이후) (핸들러 이후 로직 — 응답 변환)
│
▼
응답
✗ 위 어디서든 예외가 던져지면 →
7. EXCEPTION FILTER (잡아서 오류 응답으로 포맷)
