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