📘 정처기 공부
🔴 Tier 11 / 12

1 결합도(Coupling) & 응집도(Cohesion)

좋은 모듈 설계의 두 축 — 결합도는 낮게, 응집도는 높게.

핵심 결합도(Coupling)는 모듈 상호 의존 정도, 응집도(Cohesion)는 모듈 내부 구성요소의 관련성 정도. 잘 설계된 모듈은 결합도 ↓ 응집도 ↑.

결합도 6단계 (약함 → 강함)

단계결합도정의
1 (약)자료(Data)매개변수로 필요한 데이터(값)만 전달. 가장 이상적.
2스탬프(Stamp)배열·구조체·객체 등 자료구조 전체를 전달(일부만 사용).
3제어(Control)다른 모듈의 처리 흐름을 좌우하는 제어 신호(플래그)를 전달.
4외부(External)외부 포맷·프로토콜·통신 형식 등을 공유.
5공통(Common)전역 변수(공유 데이터)를 여러 모듈이 함께 참조.
6 (강)내용(Content)한 모듈이 다른 모듈의 내부 기능·데이터에 직접 접근. 최악.

응집도 7단계 (약함 → 강함)

단계응집도정의
1 (약)우연적(Coincidental)아무 관련 없는 기능들을 우연히 한 모듈에 모음. 최악.
2논리적(Logical)논리적으로 유사한 성격의 기능을 묶음(예: 모든 입력 처리).
3시간적(Temporal)같은 시점에 실행되는 기능을 묶음(예: 초기화 루틴).
4절차적(Procedural)정해진 순서(절차)대로 수행되는 기능들을 묶음.
5교환/통신적(Communicational)동일한 입력·출력 데이터를 사용하는 기능들을 묶음.
6순차적(Sequential)한 기능의 출력이 다음 기능의 입력으로 순차 연결.
7 (강)기능적(Functional)모든 요소가 단일 기능 수행에 기여. 가장 이상적.
암기팁 결합도 자 스 제 외 공 내 · 응집도 우 논 시 절 통 순 기 (둘 다 왼쪽이 약함, 오른쪽이 강함).
함정주의 방향 혼동 주의! 결합도는 낮을수록, 응집도는 높을수록 좋은 설계다. "결합도 높게"가 좋다고 헷갈리지 말 것.

✅ 자가점검

Q1. 결합도를 약한 것부터 강한 순서로 나열하시오.

자료(Data) → 스탬프(Stamp) → 제어(Control) → 외부(External) → 공통(Common) → 내용(Content). 암기: 자 스 제 외 공 내. 결합도는 낮을수록(왼쪽) 좋은 설계.

Q2. 응집도가 가장 강한(이상적인) 단계와 가장 약한 단계는?

가장 강함 = 기능적(Functional) 응집도(모든 요소가 단일 기능에 기여). 가장 약함 = 우연적(Coincidental) 응집도. 전체 순서: 우 논 시 절 통 순 기.