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 |
댓글