서버리스 환경(등에서) cold start 가 중요한 병목 현상의 원인이 될 수 있음
lazyModule 임을 명시하여 지연 로딩 처리 가능
import { Injectable, LazyModuleLoader } from '@nestjs/common';
@Injectable()
export class CatsService {
constructor(private lazyModuleLoader: LazyModuleLoader) {}
}
const lazyModuleLoader = app.get(LazyModuleLoader);
lazymoduleloader
의 load()
를 통해 얻은 moduleRef 클래스로 접근 가능
const { LazyModule } = await import('./lazy.module');
const moduleRef = await this.lazyModuleLoader.load(() => LazyModule);
const { LazyService } = await import('./lazy.service');
const lazyService = moduleRef.get(LazyService);
Controller 는 지연 로딩 대상이 될 수 없음