AOP(관점 지향 프로그래밍) 기술에 영감을 받아 만들어진 기능이다.
- 메소드 실행 전/후에 추가적인 로직을 적용해야 할 때
- 함수에서 반환된 결과값을 변형하고 싶을 때
- 함수에서 발생한 예외를 변형하고 싶을 때
- 기본적인 함수의 기능을 확장하고 싶을 때
- 조건에 따라 함수를 오버라이딩 하고 싶을 때 (캐싱)
Nest.js에서 인터셉터를 구현할 때는 NestIntercepetor를 implement 받아 구현해야 한다.
- 인터셉터는 경로 핸들러가 호출되기 전후로 요청, 응답을 조작할 수 있다.
- 미들웨어는 경로 핸들러가 호출되기 전에만 호출된다. 요청, 응답의 조작이 가능하지만 컨트롤러에서 반환되는 응답에 대해서는 조작할 수 없다.