2025-11-17

객체가 스스로 의존 대상을 만들지 않고, 외부에서 주입받는다.

클래스가
필요한 객체(Repository, DataSource, Service 등) 인스턴스를 직접 생성(new) 하면
그 클래스와 객체는 강하게 결합 된다.

외부에서
주입해주면
느슨하게 결합된다.

→ 유지보수성 / 테스트성 / 확장성을 높이는 핵심 원리

Riverpod 사용시 ViewModel에서의 DI

ViewModel이 Repository 인스턴스를 스스로 만들경우

ViewModel이 Repository 구현체 클래스에 직접 의존함 (결합도 증가)
→ 나중에 바꾸려면 ViewModel까지 수정해야 할 수 있음

의존성 주입 (ref.read)

Riverpod이 관리하는 인스턴스를 꺼내쓴다 (결합도 감소)
→ ViewModel의 수정 없이도 Repository의 수정만으로 변경 사항 적용 가능

태그:

카테고리:

업데이트: