Spring IOC

오가람·2023년 4월 27일
0

Spring IOC (Inversion of Control)

  • IOC(제어 반전)란?

    IoC란, Inversion of Control의 약자로 프로그램을 구동하는데 필요한 객체에 대한 생성, 변경 등의
    관리를 프로그램을 개발하는 사람이 아닌 프로그램을 구동하는 컨테이너에서 직접 관리하는 것을 말한다.
    스프링은 IoC 구조를 통해 구동 시 필요한 객체의 생성부터 생명주기까지
    해당 객체에 대한 관리를 직접 수행한다.

Spring IOC 컨테이너

  • IOC 컨테이너

    스프링에서 관리하는 객체를 ‘Bean(빈)’이라고 하고, 해당 빈들을 관리한다는 의미로
    컨테이너를 ‘Bean Factory’라고 한다.

  • IOC 컨테이너의 역할

    1. 객체의 생명주기와 의존성을 관리한다.
    2. VO (DTO / POJO) 객체의 생성, 초기화, 소멸 등의 처리를 담당한다.
    3. 개발자가 직접 객체를 생성할 수 있지만 해당 권한을 컨테이너에 맡김으로써
      소스 코드 구현의 시간을 단축할 수 있다.
     
  • IOC 컨테이너와 Bean 객체

Spring DI (Dependency Injection)

  • DI(의존성 주입)란?

    DI란, Dependency Injection의 약자로 IoC 구현의 핵심 기술이라고 할 수 있다.
    사용하는 객체를 직접 생성하여 만드는 것이 아니라 컨테이너가 빈의 설정 정보를 읽어와 자동으로
    해당 객체에 연결하는 것을 의미한다.
    이렇게 의존성을 주입 받게 되면 이후 해당 객체를 수정해야 할 상황이 발생했을 때
    소스 코드의 수정을 최소화 할 수 있다.

  • DI의 장점

    1. 가 작성해야 할 코드가 단순해진다.
      1. 체 간의 종속 관계(결합도)를 해소할 수 있다.
  • Setter 메소드를 통한 의존성 주입

    의존성을 주입 받는 Setter 메소드를 만들고, 이를 통해 의존성을 주입

  • 생성자를 통한 의존성 주입

    필요한 의존성을 포함하는 클래스에 생성자를 만들고, 이를 통해 의존성을 주입

  • 메소드를 통한 의존성 주입

    의존성을 입력 받는 일반 메소드를 만들고 이를 통해 의존성을 주입

profile
개발자준비생

0개의 댓글