웹 전체의 많은 기사에서 제어 및 종속성 반전 원칙이라는 용어는 혼합되어 동의어로 사용되는 것으로 보입니다 (더 혼란은 "DI 컨테이너"및 "IoC 컨테이너"라고하는 도구에 의해 시행됩니다). Wikipedia 기사 는 IoC가 DI와 동일하지 않다는 것을 설명하려고 노력합니다.
IoC (inversion of control)는 컴퓨터 프로그램의 사용자 지정 작성 부분이 재사용 가능한 일반 라이브러리에서 제어 흐름을받는 디자인을 설명합니다.
따라서 DIP는 모듈이 구체적인 구현이 아닌 추상화에 의존하도록하는 것입니다.
그리고 IoC는 별도의 모듈에 대한 프로그램 흐름을 제어합니다. 이 모듈로 할 수있는 것 중 하나는 런타임시 종속성을 해결하는 것입니다.
이 차이는 공평 해 보이지만 의존성 해결 이외의 IoC 원칙에 대한 다른 응용 프로그램은 언급 한 적이 없습니다. Wikipedia 정의는 상당히 광범위하며 구성 및 일부 내부 논리에 따라 사용자 정의 코드를 호출 할 수있는 모듈을 사용하여 훨씬 더 많은 것을 할 수있는 것처럼 보입니다.
그래서 아직 알 수없는 몇 가지 질문이 있습니다.
- IoC와 DIP의 실제 관계는 무엇입니까? IoC는 항상 DIP를 구현하는 수단으로 사용됩니까?
- 종속성 해결 도구가 DI 컨테이너와 IoC 컨테이너라고하는 이유는 무엇입니까? 이것은 DI와 IoC가 같은 것을 의미합니다.
참고 :이 질문은 DI와 IoC의 차이점 은 무엇입니까? 와 중복되지 않습니다. 후자는 의존성 반전이 아니라 의존성 주입에 대해 묻기 때문입니다.