Spring Framework의 3가지 핵심 프로그래밍 중 하나인 의존성 주입(DI)은 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴이다. 의존성 주입의 기본적인 의미는 '외부'에서 클라이언트에게 서비스를 제공하는 것이다. 즉, 객체가 필요로 하는 어떤 것을 외부에서 전달해주는 것으로 생각할 수 있다. 인터페이스를 사이에 둬서 클래스 단계에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입해서 유연성을 확보하고 결합도를 낮출 수 있게 해준다. 의존성을 주입하는 방법에는 생성자 주입, setter 주입, 필드 주입 등 정말 다양하다. 이 중에서 최근 가장 많이 쓰이는 방법은 생성자 주입이다. 그 이유는 다음과 같다. 우선 생성자 주입은 객체를 생성할 때 1번만 호출되므로 이후에 ..