인터셉터는 의존성 주입이 가능한 @Injectable()
데코레이터 주석이 달린 클래스이며 NestInterceptor
인터페이스를 구현해야 한다.
인터셉터는 AOP(Aspect Oriented Programming) 기술에서 영감을 받은 유용한 기능 세트가 있다. 관점 지향 프로그래밍(AOP)은 cross-cutting concern으로 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다.
Request lifecycle에 따르면 request가 들어오고 middleware, guards 그리고 pre-controller 인터셉트 순으로 실행된다. controller 실행 전에 시작되는 것이다. 그 이후 pipe, controller, service, 다시 post-request 인터셉트가 실행된다. 만약 끝까지 도달 전에 예외가 발생하면 바로 예외 필터로 나간다.