https://docs.nestjs.com/modules
module 이란, @Module()
데코레이터가 달린 클레스 이다.
@Module()
데코레이터는 Nest가 어플리케이션 구조를 구성하는데 사용하는 메타데이터를 제공하니다. (make use of to-v : v 하는데 활용하다)
각각의 어플리케이션은 최소한 root module 이라는 하나의 모듈을 가지고 있어야 합니다.
root module 은 네스트가 application graph 를 만드는데 사용하는 스타팅 포인트 입니다.
application graph 란, 네스트가 모듈과 프로바이더의 관계와 디펜던시를 해결하는데 사용하는 내장 데이터 스트럭쳐 이니다.
아주작은 어플리케이션의 경우 이론적으로 단지 루트모듈만 필요할 수 있습니다. (하지만 전형적인 케이스는 아닙니다)
우리는 당신의 컴포넌트를 효과적으로 구성하는 방법으로 모듈이 강력하게 추천된다는 것을 강조하고 싶습니다.
결과적으로 어플리케이션은 여러개의 모듈들로 구성됩니다. (각각 밀접하게 관련된 기능 set을 캡슐랑화 합니다.)
@Module()
데코레이터는 하나의 오브젝트(아래의 프로퍼티들을 포함하는)를 받습니다. :
providers
: 프로바이더는 네스트 인젝터에 의해 인스턴스화 되고, 최소한 이 모듈을 건너 공유될 수 있습니다.controllers
: 인스턴스화 되야 하는 이 모듈 안에 정의된 컨트롤러들의 집합imports
: 이 모듈에서 요청된 프로바이더들을 익스포트하는 모듈의 임포트 리스트 (말 겁나 어렵게하네)exports
: 이 모듈에서 제공하고 이 모듈을 가져오는 다른 모듈에서 사용할 수 있어야하는 프로바이더들의 하위집합