SOLID (객체 지향 설계)

컴퓨터 프로그래밍에서 SOLID란 로버트 C. 마틴“Principles Of OOD”, 로버트 C. 마틴, (이 문서에서 두문자어가 쓰이진 않았지만 첫 다섯 원칙(“first five principles”)을 살펴볼 것) 날짜가 최소한 2005년 이전이다.“Getting a SOLID start.”, 로버트 C. 마틴이 2000년대 초반“SOLID Object-Oriented Design” , Sandi Metz (Duke University), 2009년 5월에 2009 고담 루비 컨퍼런스에서 발표함.에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다.

 개요 

 두문자  약어  개념 S SRP 단일 책임 원칙 (Single responsibility principle)
 한 클래스는 하나의 책임만 가져야 한다. O OCP 개방-폐쇄 원칙 (Open/closed principle)
 “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.” L LSP 리스코프 치환 원칙 (Liskov substitution principle)
 “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라. I ISP 인터페이스 분리 원칙 (Interface segregation principle)
 “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”“Design Principles and Design Patterns” , 로버트 C. 마틴 D DIP의존관계 역전 원칙 (Dependency inversion principle)
 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나다.

 같이 보기 

 기본 개념과 연관 주제 

 적응적 소프트웨어 개발
 애자일 소프트웨어 개발
 코드 재사용
 객체 지향 프로그래밍
 상속 (객체 지향 프로그래밍)
 오컴의 면도날

 설계와 개발 원칙 

 패키지 원칙
 DRY
 GRASP
 KISS
 YAGNI

 출처 

분류:소프트웨어 설계
분류:객체 지향 프로그래밍
분류:프로그래밍 원칙