커스텀 가드(Custom Garud)
2026년 5월 17일
문법
-
@Injectable() 데코레이터(Decorator)를 사용하고 CanActivate 인터페이스(Interface)를 구현하는 클래스(class)를 만들어야 한다.
-
canActivate() 메서드(Method)를 반드시 구현해야 한다.
TypeScript
커스텀 가드의 주요 특징
- ExecutionContext를 통해 현재 실행 중인 핸들러(Handler)와 클래스(class)에 대한 정보에 접근할 수 있다.
- 메타데이터(메타데이터(Metadata))를 활용하여 더 유연한 권한 제어가 가능하다.
- 의존성 주입(Dependency Injection)을 통해 다른 서비스(Service)나 프로바이터(프로바이더(Provider))를 사용할 수 있다.
- 동기(Synchronous) 또는 비동기(asynchronous)적으로 처리가 가능하다.
예시
- 아래는 역할 기반 가드(Guard)를 구현하는 예시 코드이다.
TypeScript
에러 처리
- 커스텀 가드에서는 HttpException을 throw하여 클라이언트에게 적절한 에러(error) 응답을 전달할 수 있다.
TypeScript