Spring의 IOC란 무엇인가?

dev-well-being·2023년 8월 31일
1
post-thumbnail

IOC(Inversion of Control)란?

  • 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다.
  • 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다.
  • 즉 의존성을 직접적으로 만들지 않고, 외부에서 의존성을 가져오는 경우를 말합니다.
    • 직접 new 등을 써서 만들어 쓰면 의존성을 자기가 직접 만들어 쓴다고 할 수 있습니다.

IOC 컨테이너

  • 컨테이너는 보통 객체의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이다.
  • IoC 컨테이너가 관리하는 객체들을 Bean이라고 부릅니다. 이러한 Bean들의 의존성을 관리하고, 객체를 만들어 주며, Bean으로 등록을 해주고, 이렇게 만들어진 것들을 관리합니다.

IOC 컨테이너 종류

  • BeanFactory - IoC Container의 기본이 되는 인터페이스인데 Bean을 관리하는 역할을 하는 인터페이스이다.
  • ApplicationContext - BeanFactory를 상속받고 있기 때문에 BeanFactory와 같은 기능을 한다고 볼 수 있다. 또한 BeanFactory 외에도 다양한 클래스들을 상속받고 있기 때문에 더 많은 기능을 제공하고 있다. 주로 Spring 프로젝트의 대부분은 ApplicationContext을 통해 Bean(스프링 객체)을 관리한다.

참고 사이트

https://chanhuiseok.github.io/posts/spring-4/
https://dev-coco.tistory.com/80

profile
안녕하세요!! 좋은 개발 문화를 위해 노력하는 dev-well-being 입니다.

0개의 댓글