IOC(Inversion of Control)

SPRING 2019. 6. 11. 07:12

제어의 역전이란 프로그램의 제어 흐름 구조가 역전되는 것을 뜻한다.

일반적으로 프로그래밍을 할 때는 main 함수와 같은 중심 프로그램에서 흐름을 결정하고 객체들을 구성하는 반면에 모든 제어 권한을 특별한 Object에 의해 결정되고 만들어지는 것을 뜻한다.

  • Object가 자신이 사용할 Object를 생성하거나 선택하지 않는다.
  • Object들은 자신이 어떻게 만들어지고 사용되는지 모른다.
  • 모든 Object를 제어하고 생성하는 특별한 Object가 존재한다.

DI(의존성 주입)

Spring Framework에서 사용되는 개념으로 각 class 가 필요로하는 의존관계를 컨테이너가 자동으로 연결해주는 개념이다. 각 class들 사이의 의존 관계를 Bean Definition 정보를 바탕으로 연결해준다.

의존성 주입 방식에는 3가지가 있다.

  1. Setter Injection - 인자가 없는 생성자나 static factory 메소드가 bean을 객체화하기 위해 호출된 후 bean의 setter 메소드를 호출하여 실체화하는 방식이다.
  2. Constructor Injection - 생성자를 이용하여 class사이의 의존관계를 연결 한다. 생성자에 파라미터를 지정하기 때문에 객체가 필요한 것을 확실히 알고 Setter를 쓰지 않기 때문에 필드가 불변값으로 지정될 수 있다.
  3. Method Injection

main 메소드에서 의존 대상 객체를 생성하고 주입하지 않고 객체를 생성하고 의존 객체를 주입하는 클래스를 따로 작성하여 어디에도 의존되지 않게 구성한다. 이 때 그 클래스를 조립기라고 표현한다.

bean - Spring Framework에서 제어권을 바탕으로 object를 만들고 관계를 부여하는 Object. Spring에서 빈은 스프링 컨테이너가 생성하고 관계를 설정하고 사용을 제어하는 object를 말한다.

bean factory - Spring 의 IOC를 담당하는 container. Bean을 등록, 생성, 조회, 관리, 반환한다. Beanfactory는 beanfactory가 구현하는 interface.

application context(Spring container) - bean factory와 기능은 같지만 추가적인 서비스를 제공. BeanFactory를 상속

configuration metadata - application context 나 bean factory가 IOC를 적용하기 위해 사용하는 meta data, bean을 구성하기 위해 사용.

IOC container - IOC 방식으로 bean을 관리. application context or bean factory를 말한다.

Spring Framework - Spring이 제공하는 모든기능.

'SPRING' 카테고리의 다른 글

Container의 개념과 WAS  (0) 2019.06.11
Dependency Injection(의존성 주입)  (0) 2019.06.11
2) PetClinic 예제를 통한 Spring  (0) 2019.06.11
1) PetClinic 예제를 통한 Spring  (0) 2019.06.11
블로그 이미지

Denken_Y

coding 블로그

,