NestJS/NestJS 문서화

NestJS의 요청 처리 과정

남느 2025. 4. 14. 18:01

NestJS 서버에 사용자가 어떤 것을 요청하면 아래 과정을 거쳐 처리한다.

부가적인 부분과 실제 요청 처리 부분이 나뉘는 이유

인증, 보안, 예외처리, 로그 등 서버를 운영하면서 반드시 필요하지만, 실제 업무 처리 절차와 연관이 없는 부분을 매번 구현하기 보다, 한 번 구현 후 재사용 하는 것이 좋기 때문이다.

왜 이렇게 복잡하게 나누는가?

객체지향 프로그래밍의 원칙 중 하나인 단일 책임 원칙에 의해 각각의 객체는 하나의 책임만 가지도록 설계한다.

각각의 구성요소가 하는 일

Controller와 Service 이외에는 직접 구현하는 일이 많지 않다.

다른 구성요소들은 보통 이미 구현된 것들을 가져다 쓴다.

  • Middleware : 미들웨어는 보통 3자 라이브러리를 의미하고, 다른 스키매틱이 하는 일을 할 수도 있고, 이외의 일을 할 수도 있다.
  • Guard : 인증과 권한 관리
  • Interceptor : 요청 혹은 응답에서 필요한 추가적인 부분 담당
  • Pipe : 데이터 유효성 검증
  • Controller : 라우팅
  • Service : 실제 요청을 처리하는 부분
  • Exception filter : 요청 처리 중 발생하는 오류에 대한 예외 처리
각각의 구성요소가 어떤 일을 하는지 미리 정해져 있으면 문제가 발생했을 때, 어떤 구성요소에서 문제가 발생했는지 파악하기 쉽다.