Spring Boot/Spring Core

Spring의 제어 역전(Inversion of Control)

gigyesik 2024. 4. 4. 23:13
반응형

들어가며

Spring의 제어 역전(Inversion of Control. IoC)은 의존성 주입(Dependency Injection. DI)과 함께 사용되는 디자인 패턴이다.

IoC의 핵심 아이디어는 객체의 관리를 어플리케이션 코드 대신 Spring에서 대신하는 것에 있다.

Spring IoC Container는 객체를 생성하고, 결합하고, 관리하고, 제거하는 라이프사이클을 통합 관리하여 개발자는 비즈니스 로직 설계에 집중할 수 있도록 도와준다.

Spring IoC Container가 객체를 제어하는데 필요한 설정은 XML 또는 Annotation 기반으로 할 수 있다.

Spring의 IoC Container

Spring Framework는 수많은 하위 프레임워크로 구성되어 있어, 이들을 모듈로 조합하여 웹 어플리케이션을 제작할 수 있다.

Spring Container는 두 종류가 존재한다.

  • BeanFactory Container
  • ApplicationContext Container

BeanFactory와 ApplicationContext의 차이점

  • Annotation Support : ApplicationContext만 가능
  • Bean Instantiation, Wiring : 둘 다 가능
  • Internationalization : ApplicationContext만 가능
  • Enterprise Service : ApplicationContext만 가능
  • ApplicationEvent publication : ApplicationContext만 가능
  • Automatic BeanPostProcessor registration : ApplicationContext만 가능
  • Loading Mechanism : BeanFactory는 Lazy, ApplicationContext는 Aggressive
  • Automatic BeanFactoryPostProcessor registration : BeanFactory만 가능

Resources

반응형