사용자 도구

사이트 도구


angular:dependency-injection

문서의 이전 판입니다!


Angular의 의존성 주입

의존성 주입(Dependency injection, DI)은 애플리케이션 디자인 패턴 중에서도 아주 중요한 패턴입니다. Angular는 독자적인 의존성 주입 시스템을 제공하고 있기 때문에, 이 패턴을 활용하면 Angular 애플리케이션을 좀 더 효율적인 모듈 형태로 구성할 수 있습니다.

의존성(dependencies)은 어떤 클래스가 동작하기 위해 필요한 서비스나 객체를 의미합니다. 그리고 의존성 주입 패턴은 이 의존성을 직접 생성하지 않고 외부 어딘가에서 받아오도록 요청하는 패턴입니다.

Angular에서는 클래스의 인스턴스가 생성될 때 이 클래스에 필요한 의존성을 프레임워크가 생성해서 전달합니다. 이 문서는 Angular에서 의존성 주입이 어떻게 동작하는지, 의존성 주입을 활용하면 애플리케이션을 얼마나 효율적이면서 유연한 구조로 작성할 수 있는지 설명합니다. 의존성 주입을 사용하면 테스트하기 편하고 유지보수하기도 좋은 애플리케이션을 구현할 수 있습니다.

Dependency Injection (DI)

  • Code without DI - drawbacks
  • DI as a design pattern
  • DI as a framework

DI as a design pattern

DI is a coding pattern in which a class receives its dependencies from external sources rather then creating them itself.

var engine = new Engine();
var tires = new Tires();
var car = new Car(engine, tires);
 
var engine = new Engine(parameter);
var tires = new Tires();
var car = new Car(engine, tires);

복잡도의 상승

var myEngine = new Engine();
var myTires = new Tires();
var depA = new dependency();
var depB = new dependency();
var depZ = new dependency();
var myCar = new Car(myEngine, myTires, depA, depB, depZ);
var myEngine = new Engine();
var myTires = new Tires();
var depA = new dependency();
var depB = new dependency();
var depAB = new dependency();
var depZ = new dependency(depAB);
var myCar = new Car(myEngine, myTires, depA, depB, depZ);
angular/dependency-injection.1566215707.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)