모듈은 어플리케이션의 일부분.
기능별로 모듈을 만들음
루트 모듈
main.ts 파일에서 NestFactory.create() 호출 시에 전달되는 모듈이 루트 모듈.루트 모듈은 모든 모듈들을 아우루는 가장 상위 부모라고 보면 되고, 당연히 단 하나만 존재함
// main.ts import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); // 여기선 AppModule이 루트모듈 await app.listen(3000); } bootstrap();
모듈이란?
모듈은 어플리케이션의 일부분.
한 가지의 역할을 하는 앱인 셈
예를 들어 인증을 담당하는 어플리케이션이 있다면, 그게 
users 모듈이 될 거다.인스타그램 같은 걸 만든다면, 
photos 모듈, videos 모듈 등을 만들어서 쓰겠지.즉 하나의 기능을 담당하는 녀석이라고 보면 됨.
@Module
모듈 데코레이터는 
controllers와 providers를 받는다.nest js는 모듈의 결합으로 이루어진다는 것을 명심하자.
예를 들면 AppModule이라면 AppService와 AppController만 가지도록 만드는 것이 좋다.
Movie에 관한 것이 필요하다면 MovieModule 모듈을 만들고 모듈 내에서 MovieService와 MovieController를 만들자.
import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [], controllers: [AppController], providers: [AppService], }) export class AppModule {}
루트모듈(AppModule)
모든 것을 아우르는 단 하나의 루트 모듈이 있다.
모든 것이 루트 모듈 안에 담겨야한다. 루트 모듈 가지고 
NestFactory.create(루트모듈)하기 때문!즉, AppModule은 모든 다른 모듈들을 임포트 하는 루트 모듈이다.
import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); // 여기선 AppModule이 루트 모듈 await app.listen(3000); } bootstrap();