topic난이도 · 약 20

응집도 & 결합도

좋은 모듈 = 응집도 높음 + 결합도 낮음. 각 7/6단계를 순서대로 외워야 한다.

#설계#모듈화#필기핵심
왜 배우는가

응집도 7단계·결합도 6단계의 순서가 매회 단답으로 출제된다.

응집도(Cohesion) 는 한 모듈 내부 요소들이 얼마나 밀접하게 관련되어 있는가, 결합도(Coupling) 는 한 모듈이 다른 모듈에 얼마나 의존하는가를 나타낸다. 좋은 설계는 응집도 ↑, 결합도 ↓.

강함 ← 응집도 → 약함설명
1. 기능적 (Functional)하나의 목적 수행
2. 순차적 (Sequential)이전 출력이 다음 입력
3. 교환적 (Communication)같은 데이터 사용
4. 절차적 (Procedural)실행 순서가 중요
5. 시간적 (Temporal)특정 시점에 함께 실행
6. 논리적 (Logical)유사한 일 모음
7. 우연적 (Coincidental)관련 없음 (최악)
약함 ← 결합도 → 강함설명
1. 자료 (Data)매개변수로 값만 전달
2. 스탬프 (Stamp)구조체의 일부만 사용
3. 제어 (Control)제어 신호(플래그) 전달
4. 외부 (External)외부 환경·장치 공유
5. 공통 (Common)전역 변수 공유
6. 내용 (Content)다른 모듈 내부 직접 접근 (최악)

암기법 — 응집도: 기순교절시논우 (기능-순차-교환-절차-시간-논리-우연). 결합도: 자스제외공내 (자료-스탬프-제어-외부-공통-내용). 시험에서 순서를 바꿔 물어본다.

Fan-in / Fan-outFan-in: 한 모듈을 호출하는 모듈의 수 (높을수록 재사용성 ↑). Fan-out: 한 모듈이 호출하는 다른 모듈의 수 (높을수록 복잡도 ↑).

실기 드릴 3문항
edit실기 드릴 · 단답형

모듈 내부 요소들이 하나의 목적을 위해 수행되는 가장 강한 응집도는?

edit실기 드릴 · 단답형

두 모듈이 전역 변수를 공유할 때의 결합도는?

edit실기 드릴 · 단답형

한 모듈을 호출하는 다른 모듈의 개수를 나타내는 지표는?