inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

API 문서 만들기(Swagger)

(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성

154

장봉준

작성한 질문수 3

0

providers를 통해 등록된 UsersService는 싱글톤인지 궁금하여 nest.js 공식문서를 찾아보았습니다.

 

UsersModule의 exports를 통해 캡슐화된 공급자들을 내보내고,
AppModule에 UsersModule을 imports배열에 추가해서 가져오면
providers에 등록하지 않아도 자동으로 주입을 해주며,
인스턴스를 공유하는 싱글톤으로 주입받는다고 이해했습니다.

 

반면, UsersService를 필요한 모듈 각각의 providers 배열에 등록하게 된다면 등록된 모듈마다 인스턴스가 생성해서 주입하는 것으로 이해하였습니다.

 

공식문서에는 싱글톤으로 생성되서 관리된다면 메모리를 아낄 수 있고, 리소스의 관리가 쉬워진다는데

 

질문 1. 리소스의 관리가 쉬워지는건 같은 변수를 공유하기 때문이라고 이해해도 괜찮을까요?

 
질문 2. 제가 이해한 내용에서 잘못된 부분이 있는지 궁금합니다.

 

질문 3. providers 배열에 모듈마다 등록해서 인스턴스를 계속 찍어내야 하는 예시가 궁금합니다.

(싱글톤의 장점은 어느정도 이해가 되지만, 그 반대의 경우에는 어떤 상황에서 사용할 때 장점이 있는지 생각이 떠오르지 않습니다)
(집에 가면서 생각해봤는데 설정이 서로 다르게 주입되어야 하는 경우가 있다면 사용될 수 있을 것 같습니다.)

 

 

node.js nestjs typeorm

답변 2

1

제로초(조현영)

UsersModule에 연결한 UsersService는 싱글톤이 됩니다. imports UsersModule해서 사용하면 같은 UsersService를 사용합니다.

  1. 네 같은 인스턴스이므로 this로 등록해둔 값들도 공유할 수 있습니다.

  2. 잘 이해하셨습니다.

  3. UsersModule을 import하면 UsersModule의 프로바이더 전체가 import되므로 불필요한 서비스를 임포트하게될 수도 있고, UsersModule의 프로바이더와 내 프로바이더가 겹칠 수도 있습니다. 말씀하신대로 설정이 다른 경우도 있고 서비스 내에서 request에 접근하는 경우도 있을 수 있습니다(다만 이건 request scope라는 기능이 내장되어있어서 설정만 해두면 알아서 매 요청마다 새로운 인스턴스를 생성합니다)

0

Deoshia Lee

An evolving a cappella track is created by all of these sections working in harmony with one another. sprunki incredibox

 

강의자료는 어디서 다운받나요?

0

110

3

질문 있습니다.

0

293

3

코드 편집기 확장 프로그램

0

209

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

143

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

165

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

151

2

로그인방법이 고민됩니다.

0

190

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

296

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

242

2

npm run db:create 시에 발생하는 decorating 오류

0

231

2

RxJS 디버깅 질문 있습니다.

0

187

3

CacheManager에 대해 질문 있습니다.

0

173

2

로깅은 어떻게 하는게 효율적일까요?

0

222

1

CORS 질문 있습니다.

0

416

2

쿠키 옵션에 대해서 질문 있습니다.

0

184

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

446

1

401 unauthorized문제

0

283

1

가드의 장점에 대해서 질문이 있습니다.

0

224

1

로그 관리에 대해 질문 있습니다.

0

249

2

CORS 에러 질문 있습니다.

0

315

2

배포 환경 DB 연결 질문 있습니다.

0

408

2

socket io 미 연결 문제 (nest & flutter)

1

1146

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

450

1

NextJS와 NestJS 소켓IO 연결

1

1477

1