Nest.js의 Dependency Injection(DI) 이해하기
Dependency Injection(DI)는 의존성 주입이라고도 하며, 객체가 서로 의존하는 관계를 클래스 내부가 아닌 외부에서 결정하고 제공하는 디자인 패턴이다.
Nest.js에서는 클래스의 생성자를 통해 의존성을 주입한다. 이를 통해 모듈과 서비스 간의 느슨한 결합을 유지하면서 코드 재사용성과 테스트 용이성을 향상시킬 수 있다.
import { Injectable, Controller, Inject } from '@nestjs/common';
@Injectable()
export class MyService {
doSomething() {
console.log('Doing something...');
}
}
@Controller('my-controller')
export class MyController {
constructor(private myService: MyService) {}
@Get('do')
doSomething(): void {
this.myService.doSomething();
}
}