Dependency Injection (DI) 본문
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