포도가게의 개발일지

Solid 원칙 본문

CS

Solid 원칙

grape.store 2022. 1. 31. 16:38
반응형

🤭 소프트웨어 설계의 5가지 원칙 — SOLID

1. 단일 책임 원칙 (SRP; Single Responsibility Principle)

객체는 단 하나의 책임 만을 가져야 하고 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐 이어야 한다. 같은 이유로 변화하는 것끼리 묶고, 다른 이유로 변화하는 것끼리는 분리하라.

2. 개방-폐쇄 원칙 (OCP: Open-Closed Principle)

기존의 코드를 변경하지 않으면서(closed) 기능을 추가(Open)할 수 있어야 한다. 소프트웨어 엔티티가 확장에 대해 개방(Open)되어야 하지만, 변경에 대해서는 폐쇄(Closed)되어야 한다. 클래스 자체를 변경하지 않고도(Closed) 그 클래스를 둘러싼 환경을 바꿀 수 있어야 한다.

3. 리스코프 치환 원칙 (LSP; Liskov Substitution Principle)

부모 클래스와 자식 클래스 사이의 행위가 일관성이 있어야 한다. 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 대체해도 프로그램의 의미는 변화되지 않는다. 서브타입은 언제나 자신의 기반 타입(base type)으로 교체할 수 있어야 한다.

4. 인터페이스 분리 원칙 (ISP; Interface Segregation Principle)

인터페이스를 클라이언트에 특화되도록 분리시켜라. 클라이언트는 자신이 사용하지 않는 메소드에 의존 관계를 맺으면 안된다.

5. 의존 역전 원칙 (DIP; Dependency Inversion Principle)

의존 관계를 맺을 때, 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라. 자주 변경하는 구체 클래스 대신 인터페이스나 추상 클래스에 의존하라.

 

 

'CS' 카테고리의 다른 글

정규 표현식  (0) 2022.03.26
OOP(객체지향프로그래밍)?  (1) 2022.01.04
Mutex vs Semaphore vs Monitor  (0) 2021.12.27
Web Server  (0) 2021.12.25
동적 메모리 할당 분리가용 리스트  (0) 2021.12.23
Comments