NextJS Lazy-loading modules

paduck·2024년 6월 16일
0

NestJS

목록 보기
18/24

서버리스 환경(등에서) cold start 가 중요한 병목 현상의 원인이 될 수 있음

  • 특정 서버리스 함수 호출에 필요한 모듈만 로드하여 부트스트랩 시간을 단축

lazyModule 임을 명시하여 지연 로딩 처리 가능

  • class 내에서
import { Injectable, LazyModuleLoader } from '@nestjs/common';

@Injectable()
export class CatsService {
  constructor(private lazyModuleLoader: LazyModuleLoader) {}
}
  • app 인스턴스에서
const lazyModuleLoader = app.get(LazyModuleLoader);

lazymoduleloaderload() 를 통해 얻은 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 는 지연 로딩 대상이 될 수 없음

profile
학습 velog

0개의 댓글