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)

  • 관련 없는 기능들이 묶임 (최악)