1. 의존성(Dependency) 이란?
2. 의존성 주입이 필요한 이유
3. Spring 프레임워크의 대표적 3가지 의존성 주입
의존성이란 객체가 다른 객체를 사용하는 관계 가운데 갖게 되는 성질을 뜻한다. 의존성을 띄는 관계는 종속적인 관계를 갖기에 둘중 한개의 객체가 변한다면 그 변함이 다른 객체에 영향을 준다. 이는 객체지향설계의 5가지 원칙 SOLID중 OCP (Open Closed Principle)에 위배된다.
// Main클래스와 Sub클래스는 의존관계이다.
public class Main{
private Sub sub;
public Main(){
this.sub = new Sub();
}
}
위에 작성한 코드와 같이 기존에 작성했던 Class와 Class의 관계에서는 한 클래스의 내부에서 다른 클래스의 객체가 생성되게 된다. (OOP에서 객체와 객체관의 관계가 가장 바람직하다) 이 경우에는 종속적인 관계를 띄기에 코드의 수정이 번거롭다. 그렇기 때문에 클래스 내부에 클래스가 속해 내부에서 객체가 생성되는 형태가 아닌, 외부에서 클래스의 객체를 생성하고 해당 객체를 다른 클래스의 주입하는 형식의 코딩방식이 2000년대 초반부터 사용되게 된다.
Interface를 이용하여 의존성 주입을 사용하게 되면 클래스간 종속성이 옅어지고 유연성이 생기기에 수정이 용이하게 된다.
Spring프레임 워크에는 대표적 3가지 의존성 주입 방식이 있다.