시작하기 커스텀 프로바이더는 다음과 같은 경우에 사용됩니다. Nest 프레임워크가 만들어주는 인스턴스 또는 캐시 된 인스턴스 대신 인스턴스를 직접 생성하고 싶은 경우 여러 클래스가 의존관계에 있을 때 이미 존재하는 클래스를 재사용하고자 할 때 테스트를 위해 모의 버전으로 프로바이더를 재정의하려는 경우 밸류 프로바이더 밸류 프로바이더는 provide와 useValue 속성을 가집니다. useValue는 어떤 타입도 받을 수 있기 때문에 useValue 구문을 이용해 외부 라이브러리에서 프로바이더를 삽입하거나 실제 구현을 모의 객체로 대체할 수 있습니다. @Module({ imports:[UsersModule], providers: [{ provide:UsersService, useValue:mockUser..
Node.JS는 다른 웹 프레임워크와는 다르게, 멀티 스레드 상태 비저장 모델을 따르지 않습니다. 따라서 싱글턴 인스턴스를 사용하는 것은 안정한 방식이고 이는 요청으로 들어오는 모든 정보(DB커넥션 풀, 전역 싱글턴 서비스 등)들을 공유할 수 있습니다. 하지만 GraphQL 애플리케이션의 요청별 캐싱을 한다거나 요청 추적, 멀티테넌시를 지원하기 위해서는 요청 기반으로 생명주기를 제한해야 합니다 멀티 테넌시: 하나의 애플리케이션 인스턴스가 여러 사용자에게 각각 다르게 동작하도록 하는 SW 아키텍처를 말합니다. Nest.JS에서는 컨트롤러와 프로바이더에 스코프 옵션을 주어 생명주기를 지정하는 방법이 있습니다. DEFAULT: 싱글턴 인스턴스가 전체 애플리케이션에 공유됩니다. 애플리케이션이 처음 시스템 구동을..