[nest.js] nest Module

김민재·2024년 4월 22일

nest.js

목록 보기
6/63

Module 속성

  • imports

    • 현재 모듈에서 사용하려는 다른 모듈들의 목록을 정의합니다.
    • 이 속성에 명시된 모듈들은 주로 필요한 프로바이더(서비스)를 제공합니다.
    • 예를 들어, API 호출을 위해 자주 사용되는 HttpModule이나 데이터베이스 작업을 위한 TypeOrmModule 등이 여기에 포함될 수 있습니다.
  • controllers

    • 현재 모듈과 관련된 컨트롤러의 목록을 정의합니다.
    • 클라이언트의 요청을 처리하고, 적절한 응답을 반환한다.
  • providers

    • 현재 모듈에서 사용하거나 제공하는 서비스, 리포지토리, 팩토리 등의 목록을 정의합니다.
    • 이들은 주로 비즈니스 로직 처리나 데이터 액세스와 같은 작업을 수행합니다.
  • exports

    • 현재 모듈에서 다른 모듈로 제공하려는 서비스의 목록을 정의합니다.
    • 이 속성에 명시된 서비스들은 현재 모듈 외부에서도 사용할 수 있습니다. 따라서, 다른 모듈에서 특정 서비스를 사용하려면 해당 서비스를 exports에 포함시켜야 합니다.

    imports와 providers 차이점

    • providers는 특정 모듈 내에서만 사용되고 다른 모듈에서는 사용되지 않을 때

    • imports는 여러 모듈에서 공통으로 사용할 때

기능 모듈(Feature Modules)

  • 애플리케이션의 특정 기능을 캡슐화한다.
    ex) 사용자관리, 상품관리, 주문처리 등 특정 기능에 대해 컨트롤러, 서비스, 리포지토리 등을 그룹화한다.

공유 모듈(Shared Modules)

  • 애플리케이션 전반에 공유되는 기능을 제공
    ex) 데이터베이스 접속, 로깅 인증 등 공통적인 작업을 수행하는 기능들을 Shared 모듈로 구성할 수 있다.

    @Global() 데코레이터

    • 애플리케이션 전역적으로 사용되는 모듈이라면 Global 데코레이터를 통해 전역적으로 설정 가능

    • imports 없이 사용가능하다.

    • 보통 애플리케이션의 루트나 코어 부분에 구현한다.

profile
개발 경험치 쌓는 곳

0개의 댓글