인터셉터
인터셉터는 관점 지향 프로그래밍 (AOP) 기법 에서 영감을 받은 유용한 기능들을 가지고 있다.
- 메서드 실행 전후에 추가 로직을 바인딩한다.
- 함수에서 반환된 결과를 변환한다.
- 함수에서 발생한 예외를 변환한다.
- 기본 기능 동작을 확장한다.
- 특정 조건에 따라 함수를 완전히 재정의한다. (예: 캐싱 목적)
간단한 인터셉터 셋팅하기
nest g itc interceptor
위의 명령어를 통해 인터셉터를 셋팅하자. 간단한 코드인데 컨트롤러 진입전에 시간을 찍고 컨트롤러 종료되면 걸린시간을 찍는것이다.
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common';
import { Observable, tap } from 'rxjs';
@Injectable()
export class InterceptorInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
const now = Date.now();
console.log(`before -> ${now}`);
return next.handle().pipe(
tap(() => {
console.log(`process -> ${Date.now() - now}`);
console.log(`after ->${Date.now()}`);
}),
);
}
}

참고
https://docs.nestjs.com/interceptors
'NestJS > 개념과 구조 정리' 카테고리의 다른 글
| NestJS로 효율적인 백엔드 개발하기 (09) - 가드 (0) | 2025.12.14 |
|---|---|
| NestJS로 효율적인 백엔드 개발하기 (08) - 파이프 (3) | 2025.12.13 |
| NestJS로 효율적인 백엔드 개발하기 (07) - 예외 필터 (0) | 2025.12.12 |
| NestJS로 효율적인 백엔드 개발하기 (06) - 미들웨어(클래스형, 함수형) (0) | 2025.12.12 |
| NestJS로 효율적인 백엔드 개발하기 (05) - 모듈에 대해 알아보자 (0) | 2025.12.12 |
