Angular
의존성 (Dependency)이란?
B 클래스에서 A의 기능을 사용하고 있다면 B는 A에 의존성을 가짐
의존성 주입 (DI, Dependency Injection)
외부의 객체가 의존하는 다른 객체를 직접 생성하는 것이 아닌 외부로부터 받는 것

- 즉, 외부에서 필요한 것을 대신 주입시켜 주는 것
- NestJS에서는 생성된 싱글턴 인스턴스를 외부에서 변경되지 않게 하기 위해서 보통 생성자를 통해(
private readonly
) 넣어주는 형태의 DI를 사용
의존성 주입(DI)을 사용하는 이유
- 같은 객체의 재사용성 향상
- 테스트 용이
- 코드 단순화
- 가독성 향상
- 종속성이 감소 → 변경에 대한 민감도 감소
- 결합도(coupling)는 낮추면서 유연성과 확장성은 향상
- 객체 간 의존관계 설정 가능
제어의 역전 (IoC, Inversion of Control)