<aside> 😊 DI 의존성주입과 장점 의존성주입의 사용해야 하는 이유에 대해 정리한 페이지입니다 :)

</aside>

DI 의존성주입

하나의 객체가 다른 객체의 의존성을 제공하는 테크닉

DI 의존성주입 ex

☝️ 서비스로 사용할 수 있는 객체
✌️ 필요한 자원을 외부에서 생성자를 통해 넣어줌

의존성 주입의 장점

- 의존 관계 설정이 컴파일시가 아닌 실행시에 이루어져 모듈들간의 결합도를 낮출 수 있음
- 코드 재사용을 높여서 작성된 모듈을 여러 곳에서 소스코드의 수정 없이 사용 할 수 있음
- 모의 객체 등을 이용한 단위 테스트의 편의성을 높여줌

DI 의존성주입 사용해야하는 이유

- Unit Test가 용이
	-> 다른 객체를 DI해주면 되기 때문에 테스트 용이

- 코드의 재활용성을 높임

- 객체 간의 의존성(종속성)을 줄이거나 없애기 가능
	-> 시스템을 재 구성할 수 있음
	-> 국한되어 있지는 않지만 테스팅에 포함

- 객체 간의 결합도이 낮추면서 유연한 코드를 작성할 수 있음
	-> 클라이언트이 행위는 고정되있으나, 클라이언트가 기대하는 고유한 인터페이스를
	-> 지원하는 모든것을 할 수 있음