Open-Closed Principle소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.구현 객체를 변경 할 때 클라이언트 코드(interface부)를 변경해야하면 안된다.Dependency Inversio