posite 2026. 2. 23. 14:56

의존성 주입

  • 객체가 연산에 필요한 외부 객체를 직접 생성하지 않고 외부에서 받아서 사용하게 하는것을 의미
  • 객체가 수행해야 할 작업만 책임지면 됨 - SOLID의 SRP를 준수하게 됨
  • 결합도가 낮아져 외부 객체의 변화에도 사용하는 객체는 수정하지 않아도 됨
  • 유닛 테스트 시, 외부 객체를 생성하지 않고 가짜 데이터를 주는 테스트 환경 구축 가능 
    ex) ViewModel에서 Repository, ApiService를 생성하지 않고 가짜 데이터만 넘기는 객체를 넣어서 ViewModel만 테스트 가능
  • Android의 경우, 의존성 주입을 위한 Library로 Dagger, Hilt, Koin 등이 있음