2025-08-27 00:43

Tags: 소프트웨어 공학

의존성 주입(Dependency Injection, DI)

  • 객체가 필요로 하는 다른 객체를 외부에서 직접 생성해서 전달하는 디자인 패턴

  • 클래스간 결합도를 낮춰 코드의 유연성, 재사용성, 테스트 용이성 상승

  • 제어의 역전을 구현하는 핵심 기술

  • 의존성은 하나의 객체가 다른 객체의 기능을 사용해야 할 때 발생하는 관계 의미

  • 객체에서 직접 필요한 부품(의존성)을 만드는 대신 외부에서 만들어서 넣어준다.

  • 서비스(Service / Dependency): 도움이 되는 객체, 의존성의 대상이 되는 객체

  • 클라이언트(Client): 서비스를 사용하는 객체, 의존성을 주입받는 객체

  • 인젝터 (Injector / DI Container): 클라이언트가 필요로 하는 서비스를 생성하고, 클라이언트에 서비스를 주입

    • 클라이언트가 직접 서비스를 선택하는게 아니라 통제권을 인젝터가 가진다.