의존성은 객체가 다른 객체에 의존하여 동작하는 경우를 뜻합니다. 예시들 들어 ViewModel이 네트워크 요청을 처리하는 NetworkManager에 의존하는 상황을 생각할 수 있습니다. 이러한 의존성을 관리하는 방식이 의존성 주입 입니다. 의존성 주입을 요약하면 객체가 의존성을 직접 생성하거나 관리를 하지 않고, 외부에서 주입받아 사용하는 것 입니다. 의존성 주입이 필요한 이유? 1.결합도를 낮추기 위하여 객체가 만약 의존성을 직접 생산해버린다면 객체들 간의 결합도가 높이자고 코드변경이 어려워집니다. 만약, 특정 클래스에서 네트워크 요청을 처리하기 위해 특정 라이브러리를 사용한다고 생각해 볼 때 라이브러리를 교체하거나 기능을 확장하기 위해선 해당 클래스의 코드를 수정해야 합니다. 이러면 유지보수와 유연..