Java/Spring

[Spring] 제어의 역전(IoC)

깨준 2024. 9. 22. 20:24

제어의 역전(IoC)이란?

제어의 역전(IoC)는 애플리케이션의 제어 흐름을 개발자가 직접 관리하는 것이 아니라, 외부 프레임워크나 라이브러리에 제어흐름을 위임하는 설계 원칙이다. 또한 제어흐름 뿐만 아니라 생명주기, 의존성 관리도 프레임워크가 대신 처리하는 것이다.

  • 제어흐름: 프로그램이 실행되는 동안 명령어들이 어떤 순서로 실행되는지를 결정하는 흐름
  • 생명주기: 객체나 애플리케이션의 생성과 소멸까지의 전 과정
    • 스프링 빈의 생명주기: 생성 → 의존성 주입 → 초기화 → 사용 → 소멸.
    • 애플리케이션 생명주기: 시작 → 실행 → 종료.
  • 의존성 관리: 객체(빈) 간의 관계를 다루며, 한 객체가 다른 객체를 어떻게 얻고 사용할지를 관리

IoC 컨테이너란?

IoC 컨테이너는 객체의 생명주기와 의존성을 관리하는 시스템이다. 제어의 역전에서 개발자로부터 제어 권한을 넘겨받는 곳이라고 생각할 수도 있다.

IoC 컨테이너 = 스프링 컨테이너 = DI 컨테이너