주입 가능한 대상 표시
@Injectable()과 providers 배열로 컨테이너가 관리할 클래스를 알립니다.
NestJS DI의 핵심은 객체 생성 권한을 클래스에서 프레임워크로 옮겨, 결합도와 테스트 부담을 낮추는 것입니다.
@Injectable()과 providers 배열로 컨테이너가 관리할 클래스를 알립니다.
컨테이너가 생성자 타입을 읽고 필요한 provider와 하위 의존성을 재귀적으로 찾습니다.
테스트에서는 같은 provider 토큰에 fake 객체를 연결해 컨트롤러만 검증할 수 있습니다.
new UserService()생성 위치가 클래스 내부에 묶여 구현 교체와 단위 테스트가 어려워집니다.
constructor(service)클래스는 필요한 타입만 선언하고, 생성 정책과 인스턴스 수명은 컨테이너가 관리합니다.