CS
결합도, 응집도
2026년 02월 02일 05:23
결합도, 응집도
결합도(Coupling)란?
- 모듈과 모듈 사이의 의존 정도
- 한 모듈의 변경이 다른 모듈에 얼마나 영향을 주는지를 나타냄
- 낮을수록 좋다
결합도 종류 (내·공·외·제·스·자)
1. 내용 결합도 (Content)
- 다른 모듈의 내부 데이터나 로직을 직접 참조/수정
2. 공통 결합도 (Common)
- 여러 모듈이 공통 데이터 영역(전역 변수) 사용
3. 외부 결합도 (External)
- 외부 파일, 외부 인터페이스, 외부 포맷 공유
4. 제어 결합도 (Control)
- 제어 신호(flag, mode)를 전달해 동작 제어
5. 스탬프 결합도 (Stamp)
- 배열, 구조체, 객체 등 자료 구조 전체 전달
6. 자료 결합도 (Data)
- 필요한 데이터 값만 전달 (가장 이상적)
응집도(Cohesion)란?
- 모듈 내부 요소들 간의 관련성
- 하나의 모듈이 얼마나 하나의 목적에 집중되어 있는지
- 높을수록 좋다
응집도 종류 (기·순·통·절·시·논·우)
1. 기능적 응집도 (Functional)
- 하나의 명확한 기능만 수행 (최고)
2. 순차적 응집도 (Sequential)
- 한 기능의 출력이 다음 기능의 입력
3. 통신적 응집도 (Communicational)
- 동일한 데이터를 사용하는 기능들 묶음
4. 절차적 응집도 (Procedural)
- 실행 순서 때문에 묶인 기능들
5. 시간적 응집도 (Temporal)
- 같은 시간대에 실행되는 기능들 (초기화, 종료)
6. 논리적 응집도 (Logical)
- 논리적으로 유사한 기능들 (입출력 처리 등)
7. 우연적 응집도 (Coincidental)
- 관련 없는 기능들이 묶임 (최악)
