Dependency Inversion 객체지향 설계 5원칙 중 하나인 SOLID 원칙의 D가 Dependency Inversion을 일컫는다. Dependency Inversion을 포함해 모든 디자인 패턴의 핵심은 abstraction(추상화)이다. 이상적으로는 프로그래밍 언어가 추상화 메커니즘과 type을 모두 제공해야 한다. 파이썬에는 이 두 가지 모두 없다..! 그러나 여전히 Dependency Inversion을 구현할 수 있다. Abstract base class(ABC)라는 모듈을 사용할 수 있고, type hint도 제공한다. (⚠️ type hint는 언어 레벨에서 실질적으로 어떠한 제약 사항도 강요하지 않는다. 즉, type hint에 맞게 코드를 쓰지 않아도 에러를 발생시키지 않는다...