결합도와 응집도는 모듈 설계의 품질을 측정하는 개념이다. 결합도가 낮고 응집도가 높을수록 모듈 독립성이 높기 때문에 좋은 설계다.
결합도 Coupling - 낮을수록 좋다
개별 모듈 간에 상호 의존하는 정도
| 자료 결합도 (Data) | 모듈 간의 인터페이스가 자료 요소로만 구성되어 있다. 파라미터로 단순 자료만 전달한다. | 낮은 결합도 (positive) |
| 스탬프 결합도 (Stamp) | 구조체 (레코드) 통째로 전달한다. | |
| 제어 결합도 (Control) | 제어 flag 를 전달한다. 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계 | |
| 외부 결합도 (External) | 한 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조한다. | |
| 공통 결합도 (Common) | 공유되는 공통 데이터를 여러 모듈이 사용 (전역 변수 참조) | |
| 내용 결합도 (Content) | 내부 코드 및 자료 직접 접근 | 높은 결합도 (negative) |
응집도 Cohesion - 높을수록 좋다
개별 모듈이 독립적인 기능으로 정의되어 있는 정도
우논시절통순기
| 기능적 응집도 (Functional) | 단 하나의 기능만을 수행 | 높은 응집도 (positive) |
| 순차적 응집도 (Sequential) | 이전 출력이 다음 입력으로 | |
| 통신적 응집도 (Communicational) | 동일 데이터 입출력 공유 (서로 다른 기능을 수행) | |
| 절차적 응집도 (Procedural) | 순서에 따라 실행되는 기능 묶음 | |
| 시간적 응집도 (Temporal) | 같은 시간대 실행 기능 묶음 | |
| 논리적 응집도 (Logical) | 유사 종류 기능을 하나로 묶음 | |
| 우연적 응집도 (Coincidental) | 기능 간 아무 관계 없음 | 낮은 응집도 (negative) |
'Computer Science' 카테고리의 다른 글
| [Network] 서브넷 마스크 & 프리픽스 & 네트워크 주소 (0) | 2026.04.16 |
|---|---|
| [자료구조] map, hashmap, set 의 차이 (0) | 2025.09.23 |