Spring의 핵심개념은 의존성 주입(DI)이다. 의존이란,A의 기능이 동작하려면 객체B가 존재해야 함을 의미한다. 예를들어, Controller는 웹화면을 구성하는 역할을 한다. 화면을 구성하려면 서비스에 맞는 데이터를 전달 받아야 한다. 그러므로 Controller는 데이터를 서비스에 맞게 처리하는 로직을 가지고 있는 Service에 의존한다. Service는 데이터가 필요하므로 데이터를 가져오는 기능을 갖는 Repository에 의존한다. 이처럼, 객체지향구조는 서로 '의존'하고 있는 구조이다. 그러나 의존을 주입하는 코드를 개발자가 직접 구현하면 객체를 직접 관리해야 하고 객체간 결합도가 증가시킬 수 있다. Spring 프레임워크 존재 이유는 여기에 있다. Spring은 컨테이너라는 공간이 있다...