S : SRP (Single Response Principle) - 단일책임원칙 : 한 클래스는 반드시 하나의 책임만을 가지고 있어야 한다. => 책임을 캡슐화. O : OCP (Open Closed) - 개방/폐쇄원칙 : 소프트웨어는 확장에는 열려있어야하고 변경에는 닫혀있어야한다. => 기존 코드를 변경하지 않고 기능을 추가가능하도록 설계, 추상화&다형성 L : LSP (Liskov Substitution) - 리스코프 치환 원칙 : 상위타입은 하위타입으로 대체 가능해야한다. => 다형성과 확장성을 극대화 I : ISP (Interface Segregation) - 인터페이스 분리 원칙 : 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다. => SRP와 ISP는 같은 문제에 대..