본문 바로가기
스터디/JAVA

[JAVA] 객체 지향 설계 SOLID

by zoodi 2021. 7. 2.
728x90

객체지향 설계에서 자주 나오는 단어인 SOLID 두루뭉실하게만 알고있어서 정리하려고한다. 

 

SOLID

컴퓨터 프로그래밍에서 SOLID 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍  설계의 다섯 가지 기본 원칙을 마이클 페더스가 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발 적응적 소프트웨어 개발의 전반적 전략의 일부다. 

 

 

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

(출처 : 위키백과)

 

각 SOLID 원칙의 자세한 예시는 아래 참고 블로그를 보면 좋을 것 같다.

 


참고 : https://velog.io/@kyle/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-SOLID-%EC%9B%90%EC%B9%99-%EC%9D%B4%EB%9E%80

728x90

댓글