IoC란
IoC, DI 그리고 Container
1. 제어의 역전(Inversion of Control) IoC ? 프로그램의 제어 흐름을 클라이언트 구현 객체가 제어하지 않고 외부의 구성 영역에서 가져가는 것을 제어의 역전이라고 한다. 기존 프로그램들은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고 연결하고 실행되어 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. AppConfig의 등장으로 구현 객체는 자신의 로직을 실행하는 역할만 담당하며 프로그램 흐름 제어는 이제 AppConfig가 가져간다. 따라서 ~ServiceImpl은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행될지는 알 수 없다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있고 구현체 역시 AppConfig가 생성한다. ..