Solid원칙

SRP (Single Responsibility Principle)

단일 책임 원칙 - 한 클래스(함수)는 하나의 책임만 소유

OCP (Open-Closed Principle)

개방, 폐쇄 원칙 - 소프트웨어 요소는 확장에는 열려있지만 변경에는 폐쇄, 추상화를 통해 준수 가능

LSP (Liskov Substitution Principle)

리스코프 치환 원칙 - 객체는 프로그램의 정확성을 깨뜨리지 않으며 하위 타입의 인스턴스를 바꿀 수 있는 형태

ISP (Interface Segregation Principle)

인터페이스 분리 원칙 - 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스(프로토콜) 하나보다 더 효율적

DIP (Dependency Inversion Principle)