본문 바로가기
개발자 공부

SOLID 원칙

by Dev_Hugh 2023. 6. 20.
728x90
반응형

SOLID 란

-로버트 마틴이 2000년대 초반 명명한 객체 지향 프로그래밍 및 설계의 기본 원칙을 이야기한 것 (wikipedia)

 

SOLID 소개

-위키 백과 내용을 기반으로 제가 경험하면서 받아들인 언어로 조금씩 붙여서 작성했습니다.

S (SRP) 단일 책임 원칙 (Single Responsibility Principle) 한 클래스는 하나의 책임(기능)만 가져야 한다.
O (OCP) 개방-폐쇄 원칙 (Open/Closed Principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
-> 즉 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다.
L (LSP) 리스코프 치환 원칙 (Liskov Substitution Principle) 상위 타입 객체를 하위 타입 객체로 치환해도 정상적으로 동작해야 한다.
-> 하위 타입 객체는 상위 타입 객체에서 가능한 행위를 수행할 수 있어야 한다.
I (ISP) 인터페이스 분리 원칙 (Interface Segregation Principle) 클라이언트는 자신이 사용하는 메소드에만 의존해야 한다.
한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다.
하나의 통상적인 인터페이스보다 여러 개의 구체적인 인터페이스가 났다.
D (DIP) 의존 관계 역전 원칙 (Dependency Inversion Principle) 의존 관계를 맺을 때, 변하기 쉬운 것(구체적인 것) 보단 변하기 어려운 것(추상적인 것)에 의존해야 한다.
-> 구체화된 클래스에 의존하기 보다는 추상 클래스나 인터페이스에 의존해야 한다.

 

728x90
반응형