intent revealing
커스텀 데코레이터는 반복 추출을 감추고 의도를 드러낸다
컨트롤러가 요청 객체를 뒤지는 대신 @User, @Roles 같은 선언을 쓰면, 핸들러의 목적과 필요한 문맥이 바로 보인다.
효과: 반복 코드 제거 + 의도 표시읽는 사람은 req 구조보다 업무 의미를 먼저 본다.
전후 비교로 보는 핵심 차이
before요청 구조 노출
컨트롤러가 req.user와 header 구조를 직접 알아야 한다.
const user = req.user; const role = req.headers.role;after의도 중심 선언
필요한 문맥이 매개변수와 데코레이터 이름으로 드러난다.
update(@User() user, @Roles("admin") role)사용하기 좋은 경우
01반복되는 추출
여러 핸들러가 같은 요청 필드를 꺼낸다.
02의미 있는 문맥
현재 사용자, 테넌트, 언어처럼 업무 이름이 있다.
03검증 결합
데코레이터로 값 추출 후 Pipe로 검증하면 경계가 선명하다.