A Developing Developer
eager 과 lazy loading 본문
Nest.js에서 "eager"는 모듈의 로딩 시점을 의미하는 옵션입니다.
Nest.js는 기본적으로 지연 로딩(lazy loading)을 사용하여 모듈의 로딩을 최소화하고 애플리케이션의 부하를 줄입니다. 이는 필요한 모듈만 로딩하기 때문에 애플리케이션의 시작 속도를 높이는 데 도움이 됩니다.
하지만, 때로는 애플리케이션 시작 시점에 모든 모듈을 로딩해야 할 때도 있습니다. 이때 "eager" 옵션을 사용하면 모든 모듈이 애플리케이션 시작 시점에 로딩됩니다.
예를 들어, 다음과 같이 AppModule에서 "eager" 옵션을 사용하여 모든 모듈을 애플리케이션 시작 시점에 로딩할 수 있습니다.
@Module({
imports: [
UsersModule,
PostsModule,
CommentsModule,
],
// 모든 모듈을 애플리케이션 시작 시점에 로딩합니다.
// (지연 로딩이 아닌 즉시 로딩)
exports: [],
controllers: [],
providers: [],
})
export class AppModule {}
이렇게 하면 모든 모듈이 애플리케이션 시작 시점에 로딩되므로, 모든 모듈의 컨트롤러와 프로바이더가 즉시 사용 가능해집니다. 하지만, 이는 모든 모듈을 로딩하기 때문에 애플리케이션 시작 속도가 느려질 수 있으므로, 사용에 유의해야 합니다.
※ 프로바이더 (Provider) : 애플리케이션의 기능을 제공하기 위한 클래스 또는 값(Value)을 의미한다. 프로바이더는 클래스, 팩토리, 값 등 다양한 형태가 있으며, Nest.js 의 DI 시스템을 통해 애플리케이션 내에서 사용된다.
즉, 프로바이더는 Nest.js 의 DI 시스템을 통해 의존성 주입을 관리하며, 애플리케이션 내에서 필요한 기능을 제공하는데 사용된다.
'개발 상식' 카테고리의 다른 글
Scope & Closure (0) | 2023.02.23 |
---|---|
TypeORM 에서 'n + 1 problem' 은 어떻게 해결할까? (0) | 2023.02.21 |
IoC 와 DI (0) | 2023.02.20 |
JavaScript 에서 this 키워드 (0) | 2023.02.20 |
[Javscript] 호이스팅(Hoisting) (0) | 2022.11.28 |