카테고리 없음

인터 셉터

wooseobsssss 2023. 12. 22. 15:09

 

인터셉터는 문자 그대로 가로채다

 

즉, 특정 작업을 수행하기 전이나 후에 추가로직을 실행 할 수 있는 코드

 

HIIP요청과 응답을 처리할 때 특히 유용

로깅, 에러처리, 데이터 변환 및 인증과 같은 공통 관심사를 처리하는 데 사용

 


AOP 개념을 구현하는 핵심 요소


 

 

인터셉터 코드 예시

 

import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';

import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';

@Injectable()
export class LoggingInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
    const now = Date.now();

    return next
      .handle()
      .pipe(tap(() => console.log(`완료에 걸린 시간: ${Date.now() - now}ms`)));
  }
}

 

 


 

인터셉터를 만들기 위해서는 NESTINTERCEPTOR 인터페이스를 구현하는 것이 필수이다.

 

NEST JS 에서 제공하는 인터페이스 구현,  - 명령어를 통해 요소를 만드는 절차

 

INTERCEPT라는 메소드를 통해 요청을 가로챈 후 HANDLE할 수 있다. 

 

--요청을 처리하고 응답을 반환하는 컨트롤러 메소드로 이동---