createParamDecorator

요청 객체에서 컨트롤러 매개변수까지

커스텀 데코레이터는 인증 가드나 미들웨어가 채워 둔 컨텍스트를 읽고, 핸들러가 필요한 값만 좁혀 전달합니다.

요청 값 데코레이터 추출 기준

req.user, 헤더, 쿠키처럼 매 요청마다 반복해서 꺼내는 값을 선언형 매개변수로 바꿀 때 효과가 큽니다.

1 요청 진입

HTTP 요청이 라우터에 도달하고 ExecutionContext가 현재 요청 범위를 보관합니다.

2 가드가 점검

JWT 검증 후 req.user를 채워 컨트롤러가 인증 결과를 신뢰할 수 있게 합니다.

3 @User('id')

데코레이터가 ctx.switchToHttp()로 요청을 꺼내 필요한 속성만 반환합니다.

4 핸들러 실행

컨트롤러는 request 전체 대신 타입이 좁혀진 값으로 비즈니스 로직을 호출합니다.

데코레이터 책임

파이프는 값 추출과 기본값 보정을 맡고, 인증 여부와 권한 판단은 가드에 남깁니다.

파이프와 조합

추출된 매개변수는 파이프로 검증하거나 타입 변환을 이어 붙일 수 있습니다.

RBAC 확장

@Roles()는 메타데이터를 남기고 RolesGuard가 Reflector로 읽어 판단합니다.