module controller service

책임 배치 기준

NestJS 구조는 클래스를 많이 만드는 것이 아니라 요청 책임과 비즈니스 책임을 분리하는 방식입니다.

01

Module

기능 단위로 controller와 provider를 묶고 외부에 공개할 provider를 exports로 정합니다.

organize
02

Controller

경로, HTTP 메서드, 파라미터, 응답 형태처럼 요청 입구의 일을 맡습니다.

request edge
03

Service

사용자 생성, 데이터 조회, 계산 같은 비즈니스 규칙을 테스트 가능한 단위로 둡니다.

비즈니스 규칙
04

Provider

service, repository, helper처럼 DI 컨테이너가 만들고 주입할 수 있는 객체입니다.

injectable

서비스 이동 신호: 컨트롤러가 커지기 시작하면 서비스로 옮길 신호입니다. 다른 모듈에서도 필요한 provider는 exports로 공개하고 imports로 가져옵니다.