본문 바로가기
Computer Science

[소프트웨어공학] 응집도와 결합도

by daun_up 2026. 4. 16.

결합도와 응집도는 모듈 설계의 품질을 측정하는 개념이다. 결합도가 낮고 응집도가 높을수록 모듈 독립성이 높기 때문에 좋은 설계다.

결합도 Coupling - 낮을수록 좋다

개별 모듈 간에 상호 의존하는 정도

자료 결합도 (Data) 모듈 간의 인터페이스가 자료 요소로만 구성되어 있다. 파라미터로 단순 자료만 전달한다. 낮은 결합도 (positive)
스탬프 결합도 (Stamp) 구조체 (레코드) 통째로 전달한다.  
제어 결합도 (Control) 제어 flag 를 전달한다. 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계  
외부 결합도 (External) 한 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조한다.  
공통 결합도 (Common) 공유되는 공통 데이터여러 모듈이 사용 (전역 변수 참조)  
내용 결합도 (Content) 내부 코드 및 자료 직접 접근 높은 결합도 (negative)

응집도 Cohesion - 높을수록 좋다

개별 모듈이 독립적인 기능으로 정의되어 있는 정도

우논시절통순기

기능적 응집도 (Functional) 단 하나의 기능만을 수행 높은 응집도 (positive)
순차적 응집도 (Sequential) 이전 출력이 다음 입력으로  
통신적 응집도 (Communicational) 동일 데이터 입출력 공유 (서로 다른 기능을 수행)  
절차적 응집도 (Procedural) 순서에 따라 실행되는 기능 묶음  
시간적 응집도 (Temporal) 같은 시간대 실행 기능 묶음  
논리적 응집도 (Logical) 유사 종류 기능을 하나로 묶음  
우연적 응집도 (Coincidental) 기능 간 아무 관계 없음 낮은 응집도 (negative)