2000년대 초반 로버트 C. 마틴이란 사람이 객체 지향 프로그래밍 및 설계에 대한 SOLID라는 5가지 원칙을 소개했다.
유지 보수와 확장성이 열려있는 애플리케이션을 만들려고 할 때 이 원칙들을 적용할 수 있으며,
코드의 가독성을 높이고 확장이 쉬운 구조를 만드는 지침이다.
1. 단일 책임의 원칙(Single Responsibility Principle)
- 객체 지향 프로그래밍에서 '단일 책임의 원칙'이란 모든 클래스는 하나의 책임만을 가지고, 클래스는 그 책임을 완전히 캡슐화해야 함을 뜻한다.
즉 변경 사항이 발생해도 책임이 있는 부분만 수정하면 된다는 뜻이다.
2. 개방 - 폐쇄 원칙(Open Closed Principle)
- '개방-폐쇄원칙'은 소프트웨어가 확장에 대해서는 열려있어야 하고, 수정에 대해서는 닫혀있어야 한다는 원칙이다.
시스템의 구조를 올바르게 구성하여 변경 사항이 발생하더라도 다른 코드나 모듈에 영향이 없도록 하는 것이다.
위 원칙이 잘 지켜진 경우 새로운 기능을 추가하거나 기존 기능을 변경하기 용이해진다.
3. 리스코프 치환 법칙(Liskov Substitution Principle)
- '리스코프 치환 법칙'은 서브타입이 언제나 기반 타입으로 교체될 수 있는것을 뜻한다. 인터페이스를 상속받아 구현한 서브타입의 객체는
상속받은 기반타입으로 교체되어 동작할 수 있어야 한다는 뜻이다.
설계 내역을 변경하지 않는 한 구체화된 클래스 객체를 변경해도 인터페이스를 구현한 클래스는 프로그램에 쉽게 스위칭될 수 있다.
4. 인터페이스 분리 원칙(Interface Segregation Principle)
- '인터페이스 분리 원칙'은 사용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다.
인터페이스를 큰 덩어리로 놔두지 말고 작은 단위들로 분리함으로써 클래스들이 꼭 필요한 인터페이스만을 쓰도록 해야 한다.
5. 의존 역전 원칙(Dependency Inversion Principle)
- '의존 역전 원칙'은 의존 관계를 최대한 느슨하게 하여 추상화된 객체를 메시지로 주고받는 개념이다.
이를 통해 클래스들 간 관계 밀집성이 느슨해지고 객체의 재사용 및 변경이 용이하게 된다.
'CS' 카테고리의 다른 글
Garbage Collection (0) | 2022.05.25 |
---|---|
Process와 Thread (0) | 2022.05.17 |
소프트웨어 개발방법론 (0) | 2022.01.20 |
임계 영역 동시접근 해결 방안 (0) | 2021.12.21 |
임계 구역과 경쟁 상태 (0) | 2021.12.21 |