module
기능 단위 묶음
관련 컨트롤러와 프로바이더를 모아 애플리케이션 구조를 나눕니다.
NestJS Layers
데코레이터가 많아 보여도 핵심은 책임 분리입니다. 요청 진입, 검증, 권한 확인, 비즈니스 로직을 각 계층에 맡기면 테스트와 확장이 쉬워집니다.
module
관련 컨트롤러와 프로바이더를 모아 애플리케이션 구조를 나눕니다.
controller
@Get, @Post, @Body로 HTTP
요청을 핸들러에 연결합니다.
pipe
ParseIntPipe처럼 문자열 입력을 필요한 타입으로 바꾸고
잘못된 값을 막습니다.
guard
CanActivate에서 토큰, 세션, 역할 조건을 확인한 뒤
핸들러 실행을 허용합니다.
provider
서비스와 리포지토리는 DI로 주입되어 데이터 처리와 외부 연동을 담당합니다.
작은 앱: Express처럼 빠르게 시작할 수 있지만, 모듈 경계를 일찍 잡아두면 성장할 때 덜 흔들립니다.
큰 앱: DI와 데코레이터를 통해 테스트용 구현과 실제 구현을 분리하기 쉽습니다.