인터 셉터
인터셉터는 문자 그대로 가로채다
즉, 특정 작업을 수행하기 전이나 후에 추가로직을 실행 할 수 있는 코드
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할 수 있다.
--요청을 처리하고 응답을 반환하는 컨트롤러 메소드로 이동---