Summary


SOLID란 로버트 마틴(밥아저씨는 어디든 등장하네)이 2000년대 초반에 명명한 객체지향 프로그래밍 및 설계의 다섯가지 기본 원칙을 마이클 페더스란 사람이 소개했다고 한다.

프로그래머가 시간이 지나도 유지보수와 확장이 쉬운 시스템을 만들고자 할때 이 원칙들을 함께 적용할 수 있다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다.

Full Name Concept
S Single Responsibility Principle
(SRP) 한 클래스는 하나의 책임만 가져야 한다. → 변화의 이유는 한가지여야 한다 라는게 더 정확한 표현인것 같다.
O Open-Closed Principle
(OCP) 소프트웨어 요소는 확장에는 열려있고 변경에는 닫혀 있어야 한다.
L Liskov Substitution Principle
(LSP) 프로그램의 객체는 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
I Interface Segregation Principle
(ISP) 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
D Dependency Inversion Principle
(DIP) 프로그래머는 “추상화에 의존해야하고 구체화에 의존하면 안된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나이다.

References


SOLID (객체 지향 설계) - 위키백과, 우리 모두의 백과사전

단일 책임 원칙 - 위키백과, 우리 모두의 백과사전

개방-폐쇄 원칙 - 위키백과, 우리 모두의 백과사전

리스코프 치환 원칙 - 위키백과, 우리 모두의 백과사전

인터페이스 분리 원칙 - 위키백과, 우리 모두의 백과사전

의존관계 역전 원칙 - 위키백과, 우리 모두의 백과사전