Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

Dependency Injection (DI) 본문

Study/Etc

Dependency Injection (DI)

awakerrday 2017. 8. 22. 14:18

Dependency Injection (DI)



A, B 두 객체가 있을 때, A 객체에서 B 객체를 멤버로 가지고 메서드나 변수를 사용할 때 의존성, 종속 관계 (Dependency)가 성립. 이러한 관계의 남발은 모듈간의 결합도 (Coupling)를 높혀 소스코드를 복잡하게 하고 프로그램의 재사용 및 테스트를 어렵게 함 


이를 해결하기 위해 Strategy pattern을 일종의 프레임워크처럼 사용할 수 있도록 만들어짐 (Spring의 기능)

A 객체는 B 객체의 상위 인터페이스만을 가지고 Spring은 설정파일 (XML or Java)을 통해 각 객체를 생성하고 Bean으로 취급, 설정된 대로 A가 가지고 있는 인터페이스에 B의 인스턴스 레퍼런스를 주입하여 구현


객체들은 서로 간에 직접적으로 의존성을 주고 받지 않게 된다. 제 3자에 의해서 (설정파일로 Spring이 관리한다)


이로써 A 객체는 B 객체만 국한하여 사용하지 않아도 되고, 멤버로 가지는 인터페이스로 구현된 객체라면 무엇이든지 설정파일에 따라 주입 받고 사용할 수 있게 된다 -> DI의 장점: 결합도 (Coupling)가 낮아짐 



'Study > Etc' 카테고리의 다른 글

Dangling Pointer와 Use-After-Free  (0) 2017.11.30
랜섬웨어 시뮬레이터 RanSim  (0) 2017.11.03
JavaScript, PHP, Node.js란?  (0) 2017.08.14
신입 개발자 면접지식  (0) 2017.08.01
Vim Cheat Sheet for Programmers  (0) 2017.07.03
Comments