- 순서
- 응집도
- 결합도
- SOLID원칙
- 단일 책임 원칙
- 개방 폐쇠 원칙
- 리스코프 치환 원칙
- 인터페이스 분리 원칙
- 의존 역전 원칙
- 객체지향적 설계가 중요한 이유
- 대부분 라이브러리 및 오픈소스는 객체지향적으로 설계됨
- 좋은 설계로 구현된 코드는 개발 시간을 단축할 수 있음
- 좋은 설계로 구현된 코드는 기능 변경에 유연하게 대응할 수 있음
- 응집도
- 응집도란? : 클래스 또는 모듈 내부의 구성 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내기 때문에 일반적으로 응집도가 높을수록 좋은 설계라고 평가됨.
- 응집도가 낮은 경우
- 서로 관련 없는 기능들이 하나의 클래스에 포함된 경우를 의미함.
- ex)팀원들의 목적이 하나인 팀과 팀원들의 목적이 각기 다른 팀의 차이
- 응집도가 높은 경우
- 서로 관련 있는 모듈들만 하나의 class에 있는 경우
- ex)1.피자배달 경로 확인 => 2.주문한 고객 대응 => 3.배달 예상 시간측정
- 결합도
- 결합도란? : 모듈 또는 클래스 간의 의존성을 나타내기 때문에 일반적으로 결합도가 낮을수록 좋은 코드이다. 유지보수의 측면에서 다른 모듈의 영향을 적게 받게되어 유지보수가 용이해진다.
- SOLID 원칙
- SOLID 원칙이란? : 객체지향 설계에서 유지 보수성과 확장성을 높이기 위한 5가지 원칙을 뜻함.
- SOLID 원칙의 주요 목적
- 유지보수성 및 확장성 향상
- 변경에 유연한 설계 제공
- SOLID 원칙 5가지
- (S)단일책임원칙
- (O)개방 폐쇠 원칙
- (L)리스코프 치환 원칙
- (I)인터페이스 분리 원칙
- (D)의존 역전 원칙
- 단일책임원칙(SRP)
- 단일책임원칙이란? : 각 클래스는 하나의 책임만 가져야한다.
- 즉, 클래스는 하나의 변경 이유만을 가져야 하며, 특정 기능이나 역할을 수행하는데 집중해야함
- 개방 폐쇠 원칙(OCP)
- 개방 폐쇠 원칙이란? : 수정에는 닫혀있고 확장에는 열려있어야한다.
- 즉, 기존 코드를 최소한으로 변경하면서 새로운 기능을 추가할 수 있도록 설계해야함.
- 리스코프 치환 원칙(LSP)
- 리스코프 치환 원칙이란? : 어떤 상황이든 자식 클래스는 부모 클래스를 대체할 수 있어야한다.
- 부모 클래스를 사용하는 코드가 자식 클래스로 대체 되더라도 정삭정으로 작동해야하고 이를 위해 자식 클래스는 부모 클래스의 동작을 일관되게 유지해야함.
- 인터페이스 분리 원칙(ISP)
- 인터페이스 분리 원칙이란? : 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야한다.
- 하나의 인터페이스 보다는 역할별로 세분화된 인터페이스를 만들어 필요한 기능만 구현하도록 설계해야함.
- 의존 역전 원칙(DIP)
- 의존 역전 원칙이란? : 고수준 모듈은 저 수준 모듈에 직접 의존하는 것이 아니라, 두 모듈 모두 추상화에 의존해야함.
- 구체적인 구현(저 수준 모듈)에 의존하는 것이 아닌, 인터페이스나 추상 클래스 같은 추상화 계층을 두어 결합도를 낮추는 것.
'C++' 카테고리의 다른 글
| [C++] TRPG(TextRPG) Character제작 (0) | 2025.06.19 |
|---|---|
| [C++]FMath (0) | 2025.06.18 |
| [C++]STL(Standard Template Library) (1) | 2025.06.11 |
| [C++]템플릿 (0) | 2025.06.09 |
| [C++] 자원 관리하기 (0) | 2025.06.09 |