본문 바로가기

Develop/Spring

[SpringFramework] 제어 역행의 개념 IOC

제어역행(IoC) 는 스프링 프레임워크의 핵심이다.
제어역행의 의미는 무엇인가?

마틴파울러는 2004년의 글에서 제어의 어떤 측면이 역행되는 것인지에 대한 의문을 제기했다. 그는 의존하는 객체를 역행적으로 취득하는 것이라는 결론을 내렸다. 그는 그와 같은 정의에 기초하여 제어 역행이라는 용어에 좀더 참신한 "의존성 주입(dependency injection)" 이라는 이름을 지어줬다.

Ioc 를 적용함으로써 객체들은 시스템 내의 각 객체를 조정하는 어떤 외부의 존재에 의해 생성 시점에서 의존성을 부여 받는다. 즉 의존성이 객체로의 주입(inject) 된다는 말이다.
따라서 IoC는 한 객체가 협업해야 할 다른 객체의 참조를 취득하는 방법에 대한 책임의 역행이라는 이미를 갖는다.