DI란?
- '어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법' 이라고 한다.
- 이해를 돕기 위해 예시를 하나 들어보자.
- A객체는 B,C객체를 주입하려고한다.
- 첫번째 방법은 A객체가 New생성자를 통해서 직접 B,C객체를 생성하는 방법


위의 코드 예시처럼 수동으로 객체에 연결을 해주는 것이 첫번째 방법이 되겠다.
- 두번째 방법은 외부에서 생성 된 객체를 setter()를 통해서 사용하는 방법이다.
두번째 방법이 의존성 주입의 예시가 되겠다.
외부에서 객체를 생성한다고 했는데, 이 외부는 IOC컨테이너에서 B,C객체를 주입시켜 생성자나 setter()를 통해 사용한다.