[javascript] 모듈 패턴에서의 의존성 주입(Dependency Injection)은 어떻게 이루어지나요?

생성자 주입(Constructor Injection)은 모듈을 인스턴스화할 때 의존성을 주입하는 방식입니다. 이는 다음과 같이 구현됩니다.

function MyModule(dependency) {
  this.dependency = dependency;
  // 모듈의 기능과 의존성을 사용하는 코드
}

var myDependency = new MyDependency();
var myModule = new MyModule(myDependency);

이와 달리, 설정 주입(Setter Injection)은 모듈을 생성한 후 의존성을 주입하는 방식입니다. 이는 다음과 같이 구현될 수 있습니다.

function MyModule() {
  this.dependency = null;
  
  this.setDependency = function(dependency) {
    this.dependency = dependency;
  }
  // 모듈의 기능과 의존성을 사용하는 코드
}

var myModule = new MyModule();
var myDependency = new MyDependency();
myModule.setDependency(myDependency);

의존성 주입의 선택은 해당 모듈의 요구 사항과 확장성에 따라 달라질 수 있습니다. 생성자 주입은 모듈이 생성됨과 동시에 모든 의존성이 확실히 필요한 경우 유용하고, 설정 주입은 나중에 의존성이 변경될 수 있는 경우에 유용할 수 있습니다.

의존성 주입은 모듈 간의 깔끔하고 유연한 상호 작용을 가능하게 하므로, 모듈 패턴에서 매우 중요한 개념입니다.

참고 링크