1.단일 책임 원칙(SRP, Single Responsibility Principle) 클래스를 변경해야 할 이유는 단 한가지여야 한다. 이 원칙은 클래스 응집도와 관련이 있다. 책임이 하나뿐인 응집도 높은 클래스를 만든다면 이 원칙을 충족시키는 것이다. 2.개방 폐쇄 원칙(OCP, Open-Closed Principle) 소프트웨어의 구성요소는 확장에 관해서는 열려있어야 하고 변경에 대해서는 닫혀있어야 한다. 클래스 상속을 생각해보면 부모 클래스가 닫힌 부분이고 자식 클래스는 열린 부분이다. 부모 클래스를 굳이 변경하지 않더라도, 자식 클래스의 행동을 변화시키면 확장할 수 있다. 3.리스코프 치환 원칙(LSB, Liskov Substitution Principle) 파생 자료형은 기본 자료형과 치환 할..