[NestJS] NestJs에 Request Lifecycle(요청 생명주기)

김강민·2023년 3월 19일
2

NestJS

목록 보기
1/1
post-thumbnail

NestJS에서는 Request Lifecycle(요청 생명주기)를 통해 요청 및 응답 데이터를 처리하고 조작할 수 있습니다. Request Lifecycle은 다음과 같은 단계로 이루어집니다.

  1. Incoming Request - 클라이언트에서 서버로 요청이 전송됩니다.
  2. Globally Bound Middleware - 애플리케이션에서 등록된 전역 미들웨어를 실행합니다.
  3. Module Bound Middleware - 요청을 처리하는 라우터 모듈에서 등록된 미들웨어를 실행합니다.
  4. Global Guards - 전역 가드를 실행하여 요청을 검사합니다.
  5. Controller Guards - 해당 컨트롤러에서 등록된 가드를 실행하여 요청을 검사합니다.
  6. Route Guards - 해당 라우트에서 등록된 가드를 실행하여 요청을 검사합니다.
  7. Global Interceptors (Pre-Controller) - 전역 인터셉터를 실행합니다.
  8. Controller Interceptors (Pre-Controller) - 해당 컨트롤러에서 등록된 인터셉터를 실행합니다.
  9. Route Interceptors (Pre-Controller) - 해당 라우트에서 등록된 인터셉터를 실행합니다.
  10. Global Pipes - 전역 파이프를 실행하여 요청 데이터를 처리합니다.
  11. Controller Pipes - 해당 컨트롤러에서 등록된 파이프를 실행하여 요청 데이터를 처리합니다.
  12. Route Pipes - 해당 라우트에서 등록된 파이프를 실행하여 요청 데이터를 처리합니다.
  13. Route Parameter Pipes - 해당 라우트에서 등록된 파라미터 파이프를 실행하여 요청 데이터를 처리합니다.
  14. Controller (Method Handler) - 해당 컨트롤러의 메서드를 실행하여 요청을 처리합니다.
  15. Service (if exists) - 해당 컨트롤러의 메서드에서 호출된 서비스를 실행합니다.
  16. Route Interceptor (Post-Request) - 해당 라우트에서 등록된 인터셉터를 실행합니다.
  17. Controller Interceptor (Post-Request) - 해당 컨트롤러에서 등록된 인터셉터를 실행합니다.
  18. Global Interceptor (Post-Request) - 전역 인터셉터를 실행합니다.
  19. Exception Filters (Route, then Controller, then Global) - 예외 필터를 실행하여 예외 처리를 수행합니다.
  20. Server Response - 서버에서 클라이언트로 응답이 전송됩니다.

이러한 Request Lifecycle 단계는 NestJS에서 요청 및 응답 데이터를 처리하는 중요한 부분입니다. 개발자는 이를 기반으로 추가 작업을 수행하거나 요청 및 응답 데이터를 조작할 수 있습니다. 예를 들어, 파이프를 사용하여 요청 데이터를 유효성 검사하거나, 인터셉터를 사용하여 로그를 기록하거나, 예외 필터를 사용하여 오류 메시지를 처리할때 사용 가능 합니다.

profile
안녕하세요 ^^

1개의 댓글

comment-user-thumbnail
2023년 3월 21일

고양이 무셔웡...

답글 달기