종종 어플리케이션의 시작은 한 개 이상의 비동기 작업이 완료될 때까지 지연되어야 합니다. 예를 들어, 데이터베이스의 연결이 설립될 때까지 요청이 들어오는 것을 원치 않을 수 있습니다. 비동기 프로바이더를 사용하면 해결할 수 있습니다. 이에 대한 문법은 useFactory 문법과 함께 async/await를 사용하는 것입니다. 팩토리는 Promise를 반환하며 팩토리 함수는 비동기 작업을 await를 사용해 대기할 수 있습니다. Nest는 프로바이더에 의존 혹은 주입하는 모든 클래스의 인스턴스화 이전에 프로미스의 처리를 기다릴 수 있게 만들어 줍니다. { provide: 'ASYNC_CONNECTION', useFactory: async () => { const connection = await creat..
Provider
이전 챕터에서, DI의 다양한 측면과 Nest에서 이를 활용하는 방법을 다루었습니다. 생성자 기반 의존성 주입을 사용해 인스턴스를 클래스에 넣는 것이 그 예입니다. 지금까지 한 가지 주요한 패턴에 대해서만 알아봤습니다. 어플리케이션이 점점 복잡해질수록, DI 시스템의 모든 기능을 사용해야 합니다. 의존성 주입 기초 의존성 주입은 제어 역전(inversion of control, IoC) 기술입니다. 여기서 자체적으로 코드에서 수행하는 대신 의존성의 인스턴스화를 IoC 컨테이너(여기서는 NestJS의 런타임 시스템)에 위임합니다. 먼저, 프로바이더를 정의합니다. @Injectable() 데코레이터는 CatsService 클래스를 프로바이더로 지정합니다. import { Injectable } from '@..