SRP(Single Responsibility Principle) 단일 책임 원칙 소프트웨어의 설계부품(클래스, 메서드 등)은 하나의 책임만 가질 수 있도록 설계해야한다. 책임은 기능으로 해석 설계를 잘한 프로그램은 새로운 요구사항이나 오류로 인한 변경 사항이 적다. 맡은 책임이 많아질수록 결합도가 높아지기 때문에 책임을 최소화하여 결합도를 낮추고 응집도를 높이는 것이 목표 OCP(Open-Closed Principle) 개방-폐쇄 원칙 기존 코드를 변경하지 않고 기능을 추가하거나 수정할 수 있도록 설계하여야한다. 자주 변경될 수 있는 것들은 수정하기 쉽게, 변경되지 않는 것들은 변화에 영향을 적게! 이를 위해 쓰는 것이 Interface 예를 들어, 러닝머신을 설계한다고하면 러닝머신 클래스의 필드로 사..