4장 - 프로바이더

2023. 4. 4. 17:20개발 관련 책 읽기/NestJS로 배우는 백엔드 프로그래밍

✅ 아래 내용들에 대해서 알아보자

- 프로바이더
- 프로바이더 등록과 사용

 

 

프로바이더

 비즈니스 로직을 수행하는 역할을 한다. 

 

프로바이더는 서비스, 저장소, 팩터리, 헬퍼 등 여러 가지 형태로 구현이 가능하다.

프로바이더는 @Injectable() 데커레이터를 사용하는데 @Injectable을 클래스 위에 지정하면, 해당 클래스는 NextJS가 어플리케이션 실행 할 때 로드되며, NextJs의 DI 컨테이너에서 사용가능한 하나의 Provider로 등록된다. 

 

따라서, 어떤 클래스에서든 UserService를 DI 받아 사용가능하고, 별도의 스코프를 지정해주지 않으면 싱글톤으로 생성된다.(스프링과 유사하다)

 

import { Injectable } from '@nestjs/common';

@Injectable() //DI
export class UserService {
  remove(id: number): string {
    return `This action removes id=${id} User`;
  }
}

 

 

프로바이더 등록과 사용

 프로바이더 인스턴스를 사용하려면 모듈에 등록을 해줘야 한다.

 

@Module({
  controllers: [UserController],
  providers: [UserService],
})
export class UserModule {}
반응형