본문 바로가기
개발공부/NestJS

[NestJs] Modules, Injection

by bzerome240 2023. 8. 16.

 

모듈

: 여러 컴포넌트를 조합하여 좀 더 큰 작업을 수행할 수 있게 하는 단위

모듈로 쪼개는 이유: 여러 모듈에 각기 맡은 책임을 나누고 응집도를 높이기 위해

마이크로서비스 아키텍처 관점에서 모듈이 커지면 하나의 마이크로서비스로 분리할 수 있다.

 

 

 

모듈 생성하기

nest g mo

 

모듈을 분리하는 것이 좋다.

app.module.ts

@Module({
  imports: [MovieModule],
  controllers: [],
  providers: [],
})

 

movie.module.ts

@Module({
  controllers: [MovieController],
  providers: [MovieService],
})

 

controller 생성

app.controller.ts

nest g co

마찬가지로 app.provider.ts 생성.

 


 

provider에 선언함으로써 의존성 주입이 가능하다.

 

@Module 속성

  • providers : Nest 인젝터에 의해 인스턴스화되고 적어도 이 모듈에서 공유될 수 있는 공급자
  • controllers : 인스턴스화해야하는 이 모듈에 정의 된 컨트롤러 세트
  • imports : 이 모듈에 필요한 라이브러리들
  • exports : providers에서 모듈들을 제공하고 다른 모듈에서 사용이 가능해진다.

 

728x90
반응형

댓글