NestJS에서의 의존성 주입(Dependency Injection)
의존성 주입은 제어의 역전 (inversion of Control) 기술 중 하나이다.
쉽게 말해 서비스 파일 내의 함수를 컨트롤러에서 사용할 수 있도록 하는 것이다.
@Injectable()
export class AppService {}
인젝터블 어노테이션
이는 의존성 주입의 대상임을 알려주는 것이다.
주입할 프로바이더에 @Injectable 데코레이터를 붙이면 Nest IoC 컨테이너가 해당 프로바이더를 관리할 수 있다.
프로바이더와 서비스의 개념이 헷갈릴 수 있는데 controller provider, service의 개념을 쉽게 말하면 다음과 같다.
공급자가 제품을 제공해줘야 소비자가 사용할 수 있듯.
Provider 에 Service 를 등록해주어야 Controller 에서 주입받아 사용이 가능하다.