nest.js 는 기본적으로 main.ts 파일을 가지게 된다. (파일명을 바꾸면 안된다!)
bootstrap() 이라는 함수가 정의되어 있다. 여기에서 모든것이 시작된다.
코드를 보면 NestFactory 라는 곳에서 AppModule
을 사용하여 create 한다는데 커맨드 + 클릭으로 AppModule
을 찾아 들어가보자.
app.module.ts 파일에 정의되어있다.
코드를 보면 AppModule 이라는 클래스가 정의되어 있고, @Module 이라는 이름으로 뭔가 정의가 되어있다.
이렇게 @로 시작하는것들을 Nest에서는 데코레이터
라고 부른다. 말 그대로, 함수를 꾸며주는 역할을 한다.
Nest.js 는 이 데코레이터들을 기준으로 움직이게 된다. (스프링의 어노테이션과 비슷하다!)
이 데코레이터들은 함수 또는 클래스 바로 위에 붙어있어야한다.
코드상으론 AppModule 이라는 클래스를 export 시키고 있는데, 그것에 대한 진짜 내용은 @Module 안에 있다.
@Module 안에서는 앞으로 사용될 파일들을 포함시켜주는 역할을 한다.
위의 코드를 예로 AppController
를 controllers
로 사용하겠다는 뜻이고, AppService
를 providers
로 쓰겠다는 뜻이다.