프로그램의 진행 흐름을 개발자가 제어하는 것이 아니라 **프레임워크 자체에서 제어(IOC)
**한다.
프로그램의 진행 흐름을 개발자가 제어할 수 있다.
기존 개발 방식에서 개발자가 흐름을 제어하는 것이 아니라 **프레임워크 자체에서 흐름을 제어
**하는 것이다.
IOC와 DI를 같은 개념으로 오해할 수 있는데 절대 아니고 **DI는 IOC를 구현하기 위한 방법 중 하나
**일 뿐이다.
요약 → **IOC라는 원칙을 구현하기 위해 DI라는 패턴을 사용
**하는 것이다.
IOC를 구현하는데 여러 가지 방법이 있지만 주로 아래와 같은 방법을 사용한다.
객체 생성을 전담하는 팩토리 클래스를 두어 객체 생성하는 방식