OCP(Open-Closed Principle) 개방-폐쇄 원칙이란 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다는 것을 말한다. 소프트웨어 개발 작업에 이용된 많은 모듈 중, 하나에 수정을 할 때 그 모듈을 이용하는 다른 모듈을 전부 고쳐야 한다면, 이와 같은 프로그램은 수정하기가 어렵다. 개방-폐쇄 원칙은 시스템의 구조를 올바르게 리팩토링 하여 나중에 이와 같은 유형의 변경이 더 이상의 수정을 유발하지 않도록 하는 것이다. 개방-폐쇄 원칙이 잘 적용되면 기능을 추가하거나 변경해야 할 때 이미 제대로 동작하고 있던 원래 코드를 변경하지 않아도, 기존의 코드에 새로운 코드를 추가함으로써 기능의 추가나 변경이 가능하다. 개방-폐쇄 원칙의 두 가지 속성은..