@User()
요청 객체 접근을 숨김
ctx.switchToHttp().getRequest()로 HTTP 요청을 얻고,
전체 사용자 또는 username 같은 특정 속성을 반환한다.
@User()는 ExecutionContext에서
request.user를 읽어 매개변수로 주입하고,
@Roles()는 SetMetadata로 역할 요구사항을
남겨 RolesGuard가 읽게 한다.
@User()
ctx.switchToHttp().getRequest()로 HTTP 요청을 얻고,
전체 사용자 또는 username 같은 특정 속성을 반환한다.
데코레이터가 동작하려면 먼저 JWT 가드 또는 인증 미들웨어가
req.user를 채워야 한다.
@Roles()
SetMetadata('roles', roles)로 컨트롤러 또는 메서드에
필요한 역할을 선언적으로 붙인다.
Reflector로 정책을 읽음
RolesGuard는 클래스와 핸들러 메타데이터를 함께
조회하고, 사용자 역할과 비교해 접근을 결정한다.