2025-08-27 00:58
Tags: 소프트웨어 공학
응집도
- 결합도는 낮추고 응집도는 높여라
- 거대한 문제를 작게 나누는 분할 정복의 원리를 소프트웨어 개발에 접목
- 소프트웨어의 모듈 (함수, 클래스, 컴포넌트 등) 이 단 하나의 명확한 역할에만 집중하도록 만드는 원칙
단계 | 이름 (영문) | 설명 |
---|---|---|
1단계 | 우연적 응집도 (Coincidental) | 최악. 서로 아무 관련 없는 기능들이 단지 파일 하나에 있다는 이유로 묶여있음. |
2단계 | 논리적 응집도 (Logical) | 유사한 성격의 기능들을 하나로 묶었지만, 호출 시 특정 기능 하나만 선택해서 실행함. |
3단계 | 시간적 응집도 (Temporal) | 특정 시점에 함께 실행되어야 하는 기능들이 묶여있음. |
4단계 | 절차적 응집도 (Procedural) | 기능들이 정해진 순서대로 실행되어야 해서 묶여있음. |
5단계 | 통신적 응집도 (Communicational) | 동일한 입력 데이터를 사용하거나 동일한 출력 데이터를 만들기 위해 묶여있음. |
6단계 | 순차적 응집도 (Sequential) | 한 기능의 출력이 다음 기능의 입력으로 사용되는 순서로 묶여있음. |
7단계 | 기능적 응집도 (Functional) | 이상적. 모듈 내의 모든 기능이 단 하나의 명확한 목적을 수행하기 위해 존재함. |
- 단일 책임 원칙을 지키기 위해 노력하라
- 이름을 명확하고 구체적으로 지어라
- 함수와 클래스를 작게 만들어라
- 코드가 현재 모듈의 핵심 원칙과 직접적으로 관련이 있는지 자문하라.