공부
[TIL] 250111 Dependency Injection 개념 공부
때려쳐아니때려치지마
2025. 2. 4. 15:12
Dependency Injection
: 객체 간의 의존성 관리, 필요한 의존성을 외부에서 주입 받도록 설계하는 방법
의존성
: 객체가 자신의 기능을 수행하기 위해 필요한 다른 객체나 구성요소
객체의 기능을 코드의 직접 수정으로 재변경해 줘야 하는 경우 코드에 의존적이게 된다
다양한 케이스로 변경할 수 있는 객체의 기능을 코드로 일일이 적용시켜주는게(객체가 스스로 생성) 아니라,
외부에서 주입받을 때 객체간의 의존성을 관리하기 편하다.
[예시]
//객체의 기능을 객체가 구현하여 수정에 용이하지 않은 예시
public class Car {
private Engine engine;
public Car() {
// Car 클래스가 Engine 객체를 직접 생성
engine = new Engine();
}
}
//객체의 기능을 외부에서 주입받아 객체 결합도가 낮아진 예
public class Car {
private Engine engine;
// 의존성을 외부에서 주입받음
public Car(Engine engine) {
this.engine = engine;
}
}
[결론]
DI 패턴은 객체가 여러 기능을 할 때에 의존적이지 않게 기능을 부여받기 위함이기 때문에
변동적으로 다양한 기능을 수행해야하는 상황에서 쓰이면 좋은 패턴이다!