1. 개요 DIP(Dependency Inversion Principle)는 SOLID 로 널리 알려진 객체 지향 프로그래밍 원칙 모음의 일부를 구성합니다 . 본질적으로 DIP는 잘 구조화되고 고도로 분리되어 있으며 재사용 가능한 소프트웨어 구성 요소를 구현하는 데 사용할 수 있는 단순하면서도 강력한 프로그래밍 패러다임입니다 . 이 사용방법(예제)에서는 JPMS (Java Platform Module System)를 사용하여 Java 8과 Java 11에서 각각 하나씩 DIP를 구현하는 다양한 접근 방식을 살펴봅니다 . 2. 의존성 주입 및 제어 반전은 DIP 구현이 아닙니다. 무엇보다도 기본을 올바르게 하기 위해 근본적인 차이점을 만들어 보겠습니다. DIP는 DI(의존성 주입)도 IoC(제어 역전)도 ..