NestJS의 대표적인 구성 요소(=빌딩 블록) 3가지예요.
1. 모듈(Module)
- 앱을 기능별로 나누는 '폴더' 같은 것이라고 생각하면 돼요.
- 한 모듈 안에 컨트롤러, 서비스, 기타 코드들이 포함될 수 있어요.
- 예시:
- 유저 관리 기능 →
UsersModule
- 게시판 기능 →
BoardModule
- 이렇게 나누면 앱이 커져도 관리하기 쉬워요.
2. 컨트롤러(Controller)
- HTTP 요청(예: GET/POST/PUT/DELETE 등)을 받아서 처리하는 역할을 해요.
- 주로 라우팅 담당.
- 예시:
/users 경로로 GET 요청 → 유저 리스트 반환
/posts 경로로 POST 요청 → 게시글 생성
3. 서비스(Service)
- 실제 비즈니스 로직(핵심 기능, 데이터 처리 등)을 담당해요.
- 컨트롤러는 서비스를 호출해서 결과를 받아와 응답만 해요.
- 예시:
- 데이터베이스에서 유저를 조회하거나
- 게시글을 저장하거나
- 이메일을 발송하거나 하는 코드들은 대부분 서비스에 작성
정리해서 예시로 보여주면
[사용자 요청] → [컨트롤러] → [서비스] → (DB 등 작업) → [서비스] → [컨트롤러] → [응답]
- 컨트롤러: 요청 받고, 어떤 서비스 쓸지 결정