포도가게의 개발일지
Solid 원칙 본문
반응형
🤭 소프트웨어 설계의 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) | 2024.06.17 |
---|---|
정규 표현식 (0) | 2022.03.26 |
Mutex vs Semaphore vs Monitor (0) | 2021.12.27 |
Web Server (0) | 2021.12.25 |
동적 메모리 할당 분리가용 리스트 (0) | 2021.12.23 |
Comments