Inversion of Control(IoC)이란? 직역을 하자면 제어의 역전이다. 하지만, 이렇게 얘기하면 전혀 와 닿지가 않는다. 제어가 역전 되었다고 하는데 제어의 대상은 무엇인가 누구에서 누구로 역전 되었다는걸까 기존에는 객체를 생성하고 관리하는 걸 개발자가 직접 코드로 했다면, 제어의 역전을 적용하면 이런 일들을 개발자가 아닌 프레임워크가 하게 하는 것이다. 즉, 객체 생성과 관리의 주도권이 개발자가 아닌 프레임워크에게 있다는 뜻이다. 그럼 이게 왜 필요한지에 대해서는 직접 코드를 작성해보면 알수 있다. 선생님이라는 클래스를 만들어 봤다. 선생님은 당연히 여러 업무를 하시겠지만 예시용으로 가르치는 일만 하는걸로 하자. 예시 (IoC 적용 안 했을때) 선생님은 당연히 수학, 과학, 체육 등등 다양..