1. OCP란? - Open-Closed Principle : “확장에는 열려 있고, 수정에는 닫혀 있어야 한다”는 설계 원칙으로 새 요구사항이 생겼다고 해서, 기존 클래스를 매번 수정하면 오류 위험 증가와 유지보수 비용 상승의 문제가 있기 때문에 기존 코드를 변경하지 않고, 새로운 기능은 확장을 통해 추가할 수 있도록 설계하라는 뜻이다. - 확장과 수정의 분리interface PayStrategy { void pay();}class CardPay implements PayStrategy { public void pay() { System.out.println("카드 결제"); }}class KakaoPay implements PayStrategy { ..