IOC(Inversion Of Control, 제어의 역전)이란?
객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다.
컴포넌트 의존관계 설정(component dependency resolution), 설정(configuration) 및 생명주기(LifeCycle)를
해결하기 위한 디자인 패턴(Design Pattern)이다.
스프링을 쓰기 전에는 개발자가 프로그램의 흐름을 제어하는 주체였으나 스프링에서는 프로그램의 흐름을
프레임워크가 주도하게 된다.
객체의 생성부터 생명주기관리를 컨테어나가 도맡아서 하게 된 것이다.
즉, 제어권이 컨테이너로 넘어가게 되고, 이것을 제어권의 흐름이 바뀌었다고 하여 IOC(Inversion Of Controll,
제어의 역전)이라고 하게 된다.
제어권이 컨테이너로 넘어옴으로써 DI(의존성주입), AOP(관점 지향 프로그래밍)등이 가능하게 된다.
반대로 말하면 스프링에게 애플리케이션 흐름을 제어하는 권한(IOC)이 없다면 Autowired를 통한
의존성 주입을 할 수 없을 것이다.
레퍼런스
'Spring' 카테고리의 다른 글
JPA 기초 (0) | 2022.01.26 |
---|---|
JPA란? (0) | 2022.01.13 |
AOP(Aspect Oriented Programming) (0) | 2021.02.20 |
의존성 주입(Dependency Injection, DI) (0) | 2021.02.18 |
Spring MVC (Front Controller Pattern) (0) | 2021.02.17 |