Link Search Menu Expand Document

Dependency Injection Pattern

  • 의존성 주입 패턴
  • 컴포넌트의 종속성들을 외부 개체의 의해 입력으로 주입하는 것.
  • 외부 개체는 일반적으로 중앙 클라이언트, 전역 컨테이너 등이 해당한다.
  • 종속성의 외부 개체의 의해 입력 받기 때문에, 종속 모듈이 하드코딩 되어있는 형태에 비하여 결합성(Coupling)이 약화된다.
  • 따라서, 하드코딩되어 있는 종속성이 없기 때문에 어떠한 종속 모듈을 받아들여서든 활용이 가능해지며, 재사용성이 올라가게 된다.
  • 이러한 특징 덕분에 Mociking 을 모듈을 시스템의 나머지 상태와 분리하여 테스트할 수 있게 된다.

Example

const level = require("level");

module.exports = (dbName) => {
  return level(dbName);
};

const dbFactory = require("./db");
const db = dbFactory("./levdb");

const routerFactory = require("./routes");
const routers = routerFactory(db);
  • di를 위해 이전에 정리한 factory pattern을 사용한다.
  • 모듈을 팩토리화 시킨 후, 팩토리 인자에 종속성을 부여해주는 방식으로 구현이가능하다.