NestJS로 효율적인 백엔드 개발하기 (10) - 인터셉터

2025. 12. 15. 23:30·NestJS/개념과 구조 정리

인터셉터

인터셉터는 관점 지향 프로그래밍 (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
'NestJS/개념과 구조 정리' 카테고리의 다른 글
  • NestJS로 효율적인 백엔드 개발하기 (09) - 가드
  • NestJS로 효율적인 백엔드 개발하기 (08) - 파이프
  • NestJS로 효율적인 백엔드 개발하기 (07) - 예외 필터
  • NestJS로 효율적인 백엔드 개발하기 (06) - 미들웨어(클래스형, 함수형)
나는지토
나는지토
  • 나는지토
    안녕은헬로입니다.
    나는지토
  • 전체
    오늘
    어제
    • 분류 전체보기 (27)
      • Backend Design (1)
      • NestJS (19)
        • 개발 (9)
        • 개념과 구조 정리 (10)
      • SpringBoot (0)
      • Java (4)
        • 코테 (0)
      • PostgreSQL (2)
      • Docker (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    컨트롤러
    커서기반 조회
    코딩테스트
    PostgreSQL
    조회 방식
    채팅
    nestjs
    JWT
    Redis
    역할 검사
    Java
    ArrayList
    db 연결 오류
    자료구조
    토큰 검사
    서비스
    BullMQ
    Collections
    인증 가드
    nestjs/jwt
  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
나는지토
NestJS로 효율적인 백엔드 개발하기 (10) - 인터셉터
상단으로

티스토리툴바