- module은 캡슐화의 기본이 된다.
- 모듈은 서로의 결합도를 낮춘다. express에선 개발자가 직접 구현해야함.
- module의 구성은 크게 provider와 controller로 나눌 수 있다. module은 이들이 연결되는 방식을 정의한다.
- import를 통해 다른 module의 기능을 현재 module에서 사용할 수 있게한다. export는 현재 module에 존재하는 provider를 외부의 다른 module 에서 이용할 수 있도록 내보내는 기능을 한다.
- import와 export로 코드의 중복 방지와 재사용성은 크게 증가된다. (singleton)
- 글로벌 모듈
@Global()
@Module({
controllers: [CatsController],
providers: [CatsService],
exports: [CatsService],
})
export class CatsModule {}
- 동적 모듈 → 추후 주제에서 다룰 예정
- 사용자의 요청을 컨트롤러를 통해 컨트롤(라우팅)하고 컨트롤러는 provider의 도움을 받아(의존성주입) 비즈니스 로직을 처리한 후 사용자에게 응답을 반환함.