Research/Nest.js

03. Nest.js 프로젝트 구조

RIEM 2023. 2. 7. 14:44
728x90

Nest.js 프로젝트의 구조를 살펴보겠습니다.

프로젝트 디렉터리 구조

디렉토리를 펼치면 이렇게나 많습니다.
Screen Shot 2023-02-07 at 2 21 24 PM|300

하지만 디렉터리를 닫으면 이렇게 간단합니다.
Screen Shot 2023-02-07 at 2 21 13 PM|300

main.js

무리가 있으면 항상 대장이 있겠죠? nest.js에서 대장 역할을 하는 파일이 바로 main.js 입니다. 프로젝트의 시작점이 되는 파일입니다. bootstrap으로 nest 객체를 생성하네요.

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

Nest.js 프로젝트 구조의 특징

Nest.js로 만든 어플리케이션은 레고와 같이 모듈 형식으로 만들어집니다. main.js의 코드를 보시면 AppModule이라고도 나와있네요.

각 모듈은 컨트롤러, 서비스, 엔티티 그리고 기타 블록들로 구성되어 있습니다. 모듈은 각자 파일 시스템을 가지는데, 각 모듈을 구분할 때는 클래스 데코레이터 @module을 사용한다고 합니다.

// nest.js 구조
test
src
- main.ts
    - AppModule
        - Controllers
        - Services
        - Tests
        - ...
    - AppModule
        - Controllers
        - Services
        - Tests
        - ...
    - AppModule
        - Controllers
        - Services
        - Tests
        - ...

결국 main.ts라는 대장 아래에 모듈이라는 귀족들이 있고, 그 귀족들마다 그들을 보필하는 컨트롤러, 서비스, 테스트 등등 기능들이 있는 구조입니다.

728x90