DIP Dependency Inversion Principle

Client는 자주 변경되는 Concrete 클래스에 의존하지 말고 추상 클래스나 인터페이스에 의존해야 한다는 원칙