Request and response

Guard와 Interceptor

파이프라인은 한 줄로만 지나가지 않습니다. 인증 실패나 유효성 검사 실패는 핸들러 전에 끝나고, 성공 응답은 인터셉터를 다시 지나갑니다.

핸들러에 도달하는 요청 경로

1

Middleware

req, res, next로 공통 로깅이나 CORS 처리를 먼저 수행합니다.

2

Guard

canActivate()가 false이거나 예외를 던지면 컨트롤러는 실행되지 않습니다.

3

Interceptor 전

캐시 조회, 실행 시간 측정 시작, 트랜잭션 준비처럼 핸들러 앞을 감쌉니다.

4

Pipe

@Param()@Body() 값이 타입 변환과 DTO 검사를 통과해야 합니다.

5

Controller

서비스 호출과 비즈니스 로직은 앞 단계가 허용한 요청만 처리합니다.

6

Interceptor 후

Observable 응답을 map()으로 감싸거나 예외를 다른 형식으로 바꿉니다.

401 / 403

Guard가 거절

JWT 검증 실패나 역할 불일치는 라우트 핸들러를 호출하지 않고 응답으로 끝납니다.

400

Pipe가 거절

ParseIntPipeValidationPipe가 잘못된 매개변수를 발견하면 BadRequestException을 만듭니다.

response body

Interceptor가 변환

컨트롤러 반환값에 statusCode, message, data 같은 공통 포장을 붙일 수 있습니다.