<aside> 💡 Dagger Hilt는 Dependency Injection(DI)를 위한 라이브러리.
</aside>
A 클래스가 객체를 만들기 위해 B를 필요로 하는 상황. → 의존하게 됨.
class Car {
Tire tire;
Car(int tireSze){
tire = new Tire(tireSize); // 내부에서 생성
}
...
}
class Car {
Tire tire;
Car(Tire tire){
this.tire = tire; // 외부에서 주입
}
...
}
public void main(String[] args){
Tire tire = new Tire();
Car car = new Car(tire);
}
<aside> 💬 Tire가 수정되어도, Car에서는 특별히 수정할 필요 없이 그냥 주입 받아서 사용하면 된다. ⇒ 분리되어 있는 코드들에 대해서 각각 테스트하고 수정하는 것이 가능
</aside>
하지만 이러한 클래스가 굉장히 복잡해지면 관련 생성자나 setter 메소드를 관리해주기 힘들어진다. → 이를 도와주는 것이 라이브러리.
그 중에서도 Dagger를 사용해보자.
Scope
scope : 정의한 변수의 영향 범위, 생명 주기