본문 바로가기

Web Dev/node.js

Nest.js 의 Module 모듈 이란?

반응형

Nest JS 모듈이란 ? 모듈은 @Module () 데코레이터로 주석이 달린 클래스입니다.

@Module () 데코레이 터는 Nest가 애플리케이션 구조를 구성하는 데 사용하는 메타 데이터를 제공합니다.

각 응용 프로그램에는 하나 이상의 모듈 (루트 모듈)이 있습니다. 루트 모듈은 Nest가 사용하는 시작점입니다

모듈은 다음과 같은 속성을 가질 수 있습니다:

  1. providers: 모듈에서 사용할 수 있는 서비스, 리포지토리, 팩토리, 헬퍼 등의 제공자를 정의합니다. 이러한 제공자는 종속성 주입(Dependency Injection)을 통해 모듈 내의 다른 구성 요소에 주입될 수 있습니다.
  2. controllers: 모듈에서 사용할 컨트롤러를 정의합니다. 컨트롤러는 들어오는 HTTP 요청을 처리하고 적절한 응답을 반환합니다.
  3. imports: 현재 모듈에서 필요한 다른 모듈을 가져옵니다. 가져온 모듈의 내보낸 제공자를 현재 모듈에서 사용할 수 있습니다.
  4. exports: 현재 모듈에서 다른 모듈로 내보낼 제공자를 지정합니다. 내보낸 제공자는 이 모듈을 가져오는 다른 모듈에서 사용할 수 있습니다.

Nest.js의 모듈 시스템은 다음과 같은 이점을 제공합니다:

  1. 캡슐화: 모듈은 관련된 기능을 함께 그룹화하고 캡슐화하여 코드의 구조와 유지 관리성을 향상시킵니다.
  2. 재사용성: 모듈은 다른 모듈에서 쉽게 가져와 사용할 수 있어 코드 재사용성을 높입니다.
  3. 확장성: 모듈은 애플리케이션을 작은 단위로 분할하여 확장성을 향상시킵니다. 새로운 기능을 추가할 때 새 모듈을 만들고 기존 모듈과 통합할 수 있습니다.
  4. 테스트 용이성: 모듈은 독립적으로 테스트할 수 있어 테스트 용이성을 향상시킵니다.

 

모듈 생성하는 방법 

 nest g module boards

nest.js 프레임 워크는 간단하게 명령어로 필요한걸 생성할 수 있습니다. 

import { Module } from '@nestjs/common';
import { BoardsModule } from './boards/boards.module';

@Module({
  imports: [BoardsModule],
  controllers: [],
  providers: [],
})
export class AppModule {}

쉽게 말해 모듈은 하나의 방이라고 생각하면 될 것 같다 

반응형