request context
요청 객체에서 컨트롤러 매개변수까지
커스텀 데코레이터는 ExecutionContext에서 HTTP 요청을 꺼내고, 그 안의 특정 데이터를 컨트롤러 인자로 전달한다.
읽는 방향: context → request → selected value전체 요청 객체 대신 필요한 값만 노출한다.
값 추출 경로
1ExecutionContext
Nest가 현재 요청 실행 문맥을 전달한다.
2switchToHttp
HTTP 요청 객체를 꺼낼 수 있는 모드로 전환한다.
3getRequest
Express Request에서 user, headers, params를 읽는다.
4Select
data 인자를 기준으로 user의 일부 필드만 선택할 수 있다.
5Controller
@User("id")처럼 필요한 값이 매개변수로 들어온다.
데코레이터와 파이프의 경계
| 구분 | 역할 | 예시 |
|---|---|---|
| Decorator | 어디서 값을 가져올지 정한다. | @User(), @HeaderValue() |
| Pipe | 가져온 값이 올바른지 검증하거나 변환한다. | ParseIntPipe, ValidationPipe |