[C#] 종속성 반전(IoC) 이란?

참조


종속성 반전

  • 애플리케이션 내에서 종속성의 뱡향은 구현 세부 정보가 아닌 추상화 방향에 있어야 합니다.
  • 대부분의 애플리케이션은 컴파일 시간 종속성을 런타임 실행 방향으로 전달하여 직접 종속성 그래프를 생성하도록 작성됩니다.
  • 즉, 클래스 A가 클래스 B의 메서드를 호출하고 클래스 B가 클래스 C의 메서드를 호출하는 경우 아래 그림에 표시된 대로 컴파일 시간에 클래스 A는 클래스 B에 종속되고 클래스 B는 클래스 C에 종속됩니다.

  • 종속성 반전 원칙을 적용하면 A는 B가 구현하는 추상화에 대해 메서드를 호출할 수 있고, 런타임에 A가 B를 호출할 수 있게 되지만 B는 컴파일 시간에 A에 의해 제어되는 인터페이스에 종속됩니다. (따라서 일반적인 컴파일 시간 종속성이 '반전' 됩니다.) 런타임에 프로그램 실행 흐름은 그대로 유지되지만, 인터페이스가 도입된다는 것은 이러한 인터페이스의 여러 구현을 손쉽게 연결할 수 있다는 의미입니다.

  • 종속성 반전 은 느슨하게 결합된 애플리케이션을 빌드하기 위한 핵심 부분입니다.
  • 상위 수준의 추상화에 종속되고 상위 수준 추상화를 구현하도록(그 반대가 아니라) 루현 세부 사항을 작성할 수 있기 때문입니다.
  • 그 결과로 얻게 되는 애플리케이션은 테스트 용이성, 모듈성 및 유지관리 용이성이 더 우수합니다.
  • 종속성 주입의 실행은 종속성 반전 원칙에 따라 가능합니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY