1.SRP: 단일 책임 원칙 (single responsivility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 애매모호하다(문맥과 상황에 따라 다르다, 클 수도 있고 작을 수 있다,) 하나의 책임의 중요한 판단 기준은 변경에 있다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다. ex) 메서드 하나를 수정했는데 의존하고 있는 여러 클래스 까지 같이 수정이 필요하면 SRP를 따르지 않은 것이다. 2.OCP: 개방-폐쇄 원칙 (Open/closed principle)★★★ 소프트웨어 요소는 확장에는 열러 있으나 변경에는 닫혀 있어야한다. 다형성을 활용하자. 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현한다 역활과 구현을..