Framework/SpringBoot
[Java / Spring] Ioc란?
newtownboy
2024. 3. 13. 16:49

[Version]
⦁ 2024.03.13 / [Java / Spring] Ioc란? 최초작성
IoC(Inversion of Control)란?
제어의 역전은 프로그램의 제어 흐름을 개발자가 아닌 프레임워크나 컨테이너가 결정하는 것을 의미한다. 일반적인 프로그램에서는 개발자가 객체의 생명주기를 직접 관리하고 라이브러리를 호출하여 사용한다. 하지만 프레임워크를 사용할 경우, 클래스를 개발자가 구현하더라도 객체의 생성, 초기화, 함수 호출, 소멸 등의 제어는 프레임워크가 맡는다.
이러한 IoC 개념을 통해 라이브러리와 프레임워크를 구분할 수 있다. 라이브러리는 단순히 사용 가능한 도구의 집합이며, 개발자가 도구를 제어한다. 하지만 프레임워크는 뼈대나 구조물을 의미하며 라이브러리를 포함한 포괄적인 개념이다. 즉, 프레임워크는 개발자가 구현한 클래스를 프레임워크가 제어하여 사용하는데 이것이 제어의 역전이다.
IoC를 통해 프로그램의 진행 흐름과 구체적인 구현을 분리할 수 있다. 이는 개발자가 비즈니스 로직에 집중할 수 있게 해준다. 또한 객체 간의 의존성이 낮아지고, 구현체 사이의 변경이 용이해져 유연성과 확장성을 향상시킨다.