DIP는 Dependency Inversion Principle 로써,
추상화에 의존해야지 구체화에 의존하지 말라는 원칙이다.
즉, 소프트웨어의 모듈을 분리하기 위해 생긴 원칙이다.
상위 계층이 하위 계층(세부구현)에 의존해야 하는 것을 역전시켜서 DIP를 지킨다.
즉, 추상화에 의존해야 한다는 뜻이다.
Dependency Injection
단지 의존관계를 외부에서 주입시킨다는 뜻이다.