NestJS Interceptor 개발 - Global
Interceptors의 공식 설명 : https://docs.nestjs.com/interceptors 인터셉터(Interceptors)는 Client와 Server사이에 요청과 응답을 가로채서 조작을 한후 기존 데이터 흐름을 유지하는 개념이다. 사진1) 기존 통신방법 기존은 서버와 클라이언트가 서로 통신을 그대로 한다. 사진2) Interceptors가 추가된 통신 그런데 요청, 응답값에 항상 일정한 데이터를 추가하거나 규격을 만들려고 할때 인터셉터를 사용하는 것이 편리하다. 코드마다 응답값을 추가하는 것이 아니라 Interceptors에서 작성해서 일괄적으로 적용하는 것이다. 사진3) 기존 응답 NestJS의 프로젝트를 생성하고 가장 먼저 나오는 API는 '/' 루트의 GET 요청이다. 해당 요청은 NestJS에서 프로젝트 생성시 자동으로 만들어 진다. 기존의 응답은 "Hello World!"의 String만 응답한다. 하지만 응답방법을 변경할려고 한다. // src/common/interceptor/response.interceptor.ts import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common' ; import { Observable } from 'rxjs' ; import { map, tap } from 'rxjs/operators' ; export interface Response < T > { data : T ; } @ Injectable () export class ResponseInterceptor < T > implements NestInterceptor < T , Response < T >> { intercept ( context : ExecutionCont...