IoC, Inversion of Control : 제어의 역전
= 프로그램의 제어 흐름을 내가 직접하는 것이 아니라 외부에서 관리하는 것
이 관점에서 프레임워크와 라이브러리는 다음과 같이 구분된다.
프레임워크 : 내가 작성한 코드를 제어하고, 대신 실행한다. 즉 프로그램의 흐름을 내가 아닌 프레임워크가 제어한다.
라이브러리 : 프로그램에서 코드의 실행 흐름을 내가 제어한다.
+DI 컨테이너 : 객체를 생성하고 의존관계를 연결하는 역할 수행 ex)스프링