DIP(Dependency Inversion Principle) 의존관계 역전 원칙이란 구체화된 클래스가 아닌 인터페이스나 추상 클래스에 의존해야 한다는 것을 말한다. 인터페이스나 추상 클래스와 관계를 맺음으로 변화하기 쉬운 것(일반 클래스)으로부터 의존을 줄인다. 의존관계 역전 원칙을 따르면, 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전) 시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있다. 이 원칙은 다음과 같은 내용을 담고 있다. 상위 모듈은 하위 모듈에 의존해서는 안 된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다. 추상화는 세부 사항에 의존해서는 안 된다. 세부 사항이 추상화에 의존해야 한다. 의존관계 역전 원칙은 '상위와..