15. 의존성 주입(Dependency Injection)

2017년 1월 13일 금요일

15. 의존성 주입(Dependency Injection)


정의
프로그래밍에서 구성요소간의 의존 관계가 소스코드 내부에서 만들어지는 것이 아닌 외부에서 생성되어 내부로 주입되도록 하는 패턴
 
 
목적
코드의 재사용성을 높이고 코드 변경 요청에 쉽게 대처할 수 있도록 기능에 따라 구조를 분리
 
Creater Injection
필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통해 의존성을 주입한다.
 
Setter Injection
의존성을 입력받는 세터(Setter) 메소드를 만들고 이를 통해 의존성을 주입한다.
 
Interface Injection
의존성을 주입하는 함수를 포함한 인터페이스를 작성하고 이 인터페이스를 구현하도록 함으로써 실행시에 이를 통하여 의존성을 주입한다.
 
장점
의존 관계 설정이 컴파일시가 아닌 실행시에 이루어져 모듈들간의 결합도 를 낮출 수 있다.
코드 재사용을 높여서 작성된 모듈을 여러 곳에서 소스코드의 수정 없이 사용할 수 있다.
모의 객체 등을 이용한 단위 테스트의 편의성을 높여준다.
 
단점
외부로부터 받아오는 객체들이 증가함에 따라 코드가 복잡해지고, 이해하기 힘들어진다.
 

0 개의 댓글 :

댓글 쓰기