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로 검증하면 경계가 선명하다.