728x90
반응형
Nest 프레임워크에서 모듈은 기본적으로 싱글톤입니다. 여기서 싱글톤이란 어플리케이션이 시작될 때 어떤 클래스가 최초에 한번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴입니다. 이런 특성 덕분에 Nest는 인스턴스를 매번 만들지 않고, 모듈에서 DI(의존성 주입)를 통해 가져옵니다.
모든 모듈은 자동으로 공유 모듈이며 생성되면 재사용할 수 있습니다. 모듈에서 프로바이더를 export하면 다른 곳에서 해당 모듈을 import하면 export한 프로바이더에 접근할 수 있습니다. 사용 예시는 아래와 같습니다.
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
exports: [CatsService]
})
export class CatsModule {}
위의 예시를 기준으로 설명하면, CatsModule을 가져오는 모든 모듈은 CatsService에 접근할 수 있습니다. 그리고 모든 모듈들은 동일한 인스턴스를 공유하게 됩니다.
728x90
반응형
'Nestjs' 카테고리의 다른 글
[Nestjs] 6-1. Nestjs의 미들웨어(middleware) (0) | 2022.05.15 |
---|---|
[Nestjs] 6. 미들웨어 (middleware) (0) | 2022.05.13 |
[Nestjs] 5. 모듈(Module)에 대하여... (0) | 2022.04.24 |
[Nestjs] 4-3. 속성 기반 주입(property based injection) (0) | 2022.04.23 |
[Nestjs] 4-2. DI(Dependency Injection)?? 의존성 주입?? (0) | 2022.04.21 |