[Project_하다]/[Project_공부]
Nest.js 폴더 구조 : MVC
브렌쏭
2022. 3. 29. 15:13
NestJS - A progressive Node.js framework
NestJS is a framework for building efficient, scalable Node.js web applications. It uses modern JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Progr
nestjs.com
일단 모오든 폴더들을 끌어모아서 트리형식으로 만들면 아래와 같은 구조를 가지고 있다.
src
├── auth
│ ├── decorators
│ ├── dtos
│ ├── exceptions
│ ├── guards
│ └── interfaces
├── common
│ ├── decorators
│ ├── dtos
│ ├── entities
│ ├── exceptions
│ ├── helpers
│ └── interfaces
├── config
│ ├── app
│ ├── database
│ │ └── mysql
│ └── jwt
├── database
│ ├── migrations
├── modules
│ ├── item
│ │ ├── brands
│ │ │ ├── entities
│ │ │ ├── interfaces
│ │ │ └── repositories
│ │ └── items
│ │ ├── entities
│ │ ├── interfaces
│ │ └── repositories
│ └── user
│ └── users
│ ├── entities
│ ├── interfaces
│ └── repositories
├── providers
| ├── aws
│ │ ├── s3
│ │ └── sqs
| ├── cache
│ │ └── redis
│ ├── database
│ │ └── postgres
│ └── elasticsearch
│ ├── helpers
│ └── types
├── app.controller.ts
├── app.module.ts
└── main.ts
일단 압도되는 광경이지만, 일단은.. 간단하게 시작하자.
- 눈에 보이는 것은 views 폴더에 넣는다
- 이벤트를 감지하는 것은 controllers 폴더에,
- 그 이벤트를 통해 원하는 액션을 취하는 비즈니스 로직은 controllers 하위의 services 폴더로 간다
뭐가 서비스입니까
일단 DB와 연동되는 부분은 서비스로 간다. 그리고 돈 될만한 핵심 기능이면 전부 서비스로 간다.
뭘 해야 합니까
대부분의 일은 Nestjs가 관리해줄 것이다. 하지만 무엇을 관리당하고 무엇을 할 수 있는지를 알지 못하면 쓰는 의미가 없다. DI라던가.. 일단 저 트리 구조에 맞춰서 잘 작성을 해야 파일 매니지먼트가 원활하게 될 것이다. 니 맘대로 쓴 일기장을 자서전으로 컨버팅해주는 만능툴이 아니다.
우리가 집중해서 볼 부분은 src 폴더 내부 중에서도 일부다. module, controller, service .