IoC IoC는 Inversion of Control, 즉 제어의 역전이다. 기존의 프로그래밍 방식에서는 개발자가 프로그램의 제어 흐름을 직접 제어한다. 예를 들어, 객체를 생성하고 의존성을 해결하는 등의 작업은 개발자가 직접 수행한다. IOC에서는 제어 흐름의 일부가 라이브러리나 프레임워크에 의해 제어된다. 즉, 개발자는 제어의 흐름을 역전시킨다. IOC는 객체의 생성, 생명주기 관리, 의존성 해결 등을 담당한다. 제어의 역전은 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것을 말한다. 이전과는 다르게 클래스 B 객체를 직접 생성하는 것이 아니므로, 어딘가에서 받아와서 사용한다. 이처럼 제어의 역전을 적용하면 객체를 외부에서 관리하게 되고, 실제로 사용할 ..