Spring IoC (Inversion of Control)

2010. 8. 15. 16:47plming/Java - Spring

IoC (Inversion of Control) = 역제어

자바가 등장한 최초에는 객체 생성 및 의존관계에 대한 모든 제어권이 개발자에게 있었던 것.
서블릿, EJB가 등장하면서는 서블릿과 EJB를 관리하는 컨테이너에게로 넘어가 버리게 된 것.

IoC에서 제어권의 역전은 객체의 생성에서부터 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미.  객체에 대한 생성 및 생명주기를 관리할 수 있는 컨테이너 기능을 포함하고 있기 때문에 Spring 프레임워크를 Spring 컨테이너, IoC 컨테이너로도 부른다.

IoC 기능은 Spring 프레임워크가 탄생하기 훨씬 이전부터 사용되던 개념
"새로운 개념을 사용하는 것이 적합하다"고 주장한 사람이 Martin Fowler.
IoC를 Dependency Injection이라는 용어로 사용하는 것이 더 적합하다고 이야기했다.




[출처] Spring 프레임워크 워크북