구성
- NestJS는 기본적으로 Module, Controller, Service 등으로 구성됩니다.
Module
- 애플리케이션 구조를 구성하는데 사용하는 메타데이터를 제공하는 클래스입니다.
- 각 응용 프로그램에는 하나 이상의 모듈이 존재합니다.
- 유사하거나 동일한 기능 들을 집합하는 역할을 하며, 구성 요소를 구성하기에 효과적인 방법입니다.
- 즉, 기능 별로 생성된다고 보시면 됩니다.
Controller
- 컨트롤러는 요청을 받아 클라이언트에게 응답을 반환하는 역할을 합니다.
- 컨트롤러에 대한 개념은 다른 곳에서도 많이 사용되는 개념이므로 이정도만 작성하고 넘어가겠습니다.
Service
- 일반적으로 비즈니스 로직을 수행하는 역할을 합니다.
- 서비스는 데이터 유효성 체크, DB 아이템 생성 등의 작업을 합니다.
로직
- 위에서 설명한 구조를 기반으로 NestJS 프로젝트의 로직 흐름을 알아보도록 합니다.
- 기본적인 로직은
요청 > 컨트롤러 > 서비스 > 응답
의 구조를 취하고 있습니다.
-
main.ts
에서 App 모듈 생성 및 실행을 하며, 소스코드 내에 선언된 포트 번호로 요청을 대기합니다.
-
app.module.ts
에는 컨트롤러와 서비스가 등록되어 있습니다.
-
클라이언트가 엔드포인트 (예를 들면, localhost:3000/
)로 요청합니다.
-
엔드포인트가 /
인 컨트롤러를 호출합니다.
-
컨트롤러에서 알맞은 경로로 라우팅을 진행하며, 해당하는 핸들러로 이동하여 연결된 서비스를 호출합니다.
-
서비스에서 정의되어 있는 응답을 반환합니다.
Reference
https://velog.io/@ksone02/NestJS-시작하기-구조
https://anywaydevlog.tistory.com/54