본문 바로가기
IT기술노트/소프트웨어공학

IoC (Inversion of Control)

by 비트코기 2021. 1. 31.

DL, DI, Setter Injection, Constructor Injection, Method Injection


I. 프레임워크에 제어권 부여, IoC의 개요

가. IoC (Inversion of Control)의 정의

   - 프레임워크에 제어의 권한을 넘겨 개발자가 작성해야 하는 코드상의 제어를 줄이는 전략

나. IoC의 특징

특징

설명

객체지향설계

IoC, AOP 이용 인터페이스 기반 객체지향 설계

재사용성

클래스, 객체 단위로 컴포넌트 재 사용성 증가

의존성 관리

 XML기반 환경설정 파일 이용 객체간의 의존성 관리 용이

- 객체지향설계5원칙 중 DIP IoC의 기반 개념을 가진 원칙


II. IoC의 컨테이너 분류 및 종류

가. IoC 컨테이너 분류

Setter Injection: 클래스 사이의 의존 관계를 연결시키기 위해 Setter 메소드를 이용

Constructor Injection: 클래스 사이의 의존 관계를 연결시키기 위해 Constructor 이용

Method Injection: Singleton 인스턴스와 Non Singleton 인스턴트의 의존관계 연결이 필요할 때 사용

나. IoC 종류

종류

내용

DL

(Dependency Lookup)

- IoC 컨테이너가 관리 중인 객체 풀에서 객체를 직접 가져오는 방법

- 저장소에 저장되어 있는 Bean에 접근하기 위해 개발자 들이 컨테이너에서 제공하는 API를 이용 사용하고자 하는 Bean Lookup 하는 것

- 컨테이너 제공 API 의존관계 증가

사례

Spring Framework getBean() Method

DI

(Dependency Injection)

- 객체 사이의 의존 관계를 Bean설정정보를 바탕으로 컨테이너가 자동적으로 연결해주는 방법

- 각 클래스 사이의 의존 관계를 Bean 설정 정보를 바탕으로 컨테이너가 자동으로 연결 시켜 주는 것

- 개발자들이 컨테이너 API를 이용하여 의존 관계에 관여할 필요가 없어 API 종속성이 감소

사례

Spring Framework Constructor Injection, Setter Injection, Method Injection

- Bean : Spring Framework이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트

 

 

반응형

'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글

클래스 재사용  (0) 2021.01.31
디자인패턴(Design Pattern)  (0) 2021.01.31
MSA(Micro Service Architecture)  (0) 2021.01.31
콜백함수  (0) 2021.01.31
전자정부 프레임워크  (0) 2021.01.31
스프링 프레임워크(Spring Framework)  (0) 2021.01.31
ATAM, CBAM  (0) 2021.01.31
소프트웨어 아키텍처 품질 평가  (0) 2021.01.31

댓글