[시나공] 모듈 설계 품질 정리 (결합도·응집도·팬인/팬아웃)
2026. 3. 3. 20:20ㆍCertifications/정보처리기사 실기
1️⃣ 모듈(Module)
✅ 정의
- 모듈(Module)은 시스템을 기능 단위로 분리한 프로그램 구성 요소(서브루틴/서브시스템/작업 단위)
- 하나 또는 몇 개의 논리적 기능을 수행하기 위한 명령어들의 집합
✅ 핵심 키워드
- “기능 단위로 분리된 구성 요소” = 모듈
- 모듈의 품질은 보통
🔹 결합도(Coupling)는 낮게 / 🔹 응집도(Cohesion)는 높게
🎯 포인트
- 정의형: “시스템 기능 단위로 분리한 구성 요소” → 모듈
- 품질 기준: “결합도↓ 응집도↑”
2️⃣ 결합도(Coupling)
✅ 정의
- 결합도는 모듈 간 상호 의존 정도(연관 관계).
- 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮음
✅ 결합도 종류 (약함 → 강함) ⭐
| 종류 | 의미 | 강도 |
|---|---|---|
|
자료 결합도 (Data Coupling) |
인터페이스가 자료 요소(필요한 데이터)만 전달 |
약함
↑ 강함 |
| 스탬프 결합도 (Stamp Coupling) |
인터페이스가 배열/레코드 등 자료구조 단위로 전달 | |
| 제어 결합도 (Control Coupling) |
처리 대상 데이터만 전달하는 게 아니라 어떻게 처리할지(제어 정보/제어 신호)를 전달 |
|
| 외부 결합도 (External Coupling) |
외부(다른 모듈)에서 선언한 데이터(변수)를 참조하는 결합 | |
| 공통 결합도 (Common Coupling) |
여러 모듈이 공유 데이터(전역 변수) 를 함께 사용 파라미터가 아니라 전역 변수 갱신 방식으로 상호작용 |
|
|
내용 결합도 (Content Coupling) |
다른 모듈의 내부 기능/자료를 직접 참조하거나 수정 |
🎯 포인트
- 결합도는 “낮을수록 좋다”
- 순서 문제: 내용이 가장 강함 / 자료가 가장 약함
- “제어 요소 전달”이 보이면 → 제어 결합도
- “전역 변수/공유 데이터”가 보이면 → 공통 결합도
- “다른 모듈 내부를 직접 수정” → 내용 결합도
📌 한줄 암기 (약→강)
자스제외공내
3️⃣ 응집도(Cohesion)
✅ 정의
- 응집도는 모듈 내부 요소들이 서로 관련되어 있는 정도.
- 응집도는 강할수록 품질이 좋고, 약할수록 품질이 나쁨
✅ 응집도 종류 (약함 → 강함) ⭐
| 종류 | 의미 | 강도 |
|---|---|---|
|
기능적 응집도 (Functional) |
단일 기능 수행을 위해 모든 요소가 밀접하게 관련 |
강함
↓ 약함 |
| 순차적 응집도 (Sequential) |
한 기능의 출력이 다음 기능의 입력이 됨 (흐름이 이어짐) | |
| 교환(통신)적 응집도 (Communication) |
동일한 입력/출력을 사용하는 기능들이 모여 있음 | |
| 절차적 응집도 (Procedural) |
수행 순서 중심으로 관련 기능을 묶음 | |
| 시간적 응집도 (Temporal) |
특정 시점에 처리되는 기능들을 모아 둠 (예: 초기화/종료 처리) |
|
| 논리적 응집도 (Logical) |
유사 성격(논리적 특성)의 기능들을 모아둠 (예: 입력 처리 모음) |
|
|
우연적 응집도 (Coincidental) |
관련 없는 기능들을 단순히 모아둔 형태 |
🎯 포인트
- 응집도는 “높을수록 좋다”
- 순서 문제: 우연적(최약) ↔ 기능적(최강)
- “출력이 다음 입력” → 순차적 응집
- “단일 기능 수행” → 기능적 응집
📌 한줄 암기 (강→약)
기순교절시논우
4️⃣ 단위 모듈(Unit Module)
✅ 정의
- 소프트웨어 구현에 필요한 여러 동작 중, 한 가지 기능을 모듈로 구현한 것
- 단위 모듈로 구현되는 하나의 기능 = 단위 기능
✅ 특징
- 독립적인 컴파일 가능
- 다른 모듈에 호출/삽입 가능
✅ 단위 모듈 구현 과정
- 단위 기능 명세서 작성 → 입·출력 기능 구현 → 알고리즘 구현
🎯 포인트
- “한 가지 기능을 수행하는 모듈” = 단위 모듈
- “단위 기능 명세서”가 보기로 나오면 구현 과정 문제 가능
5️⃣ 팬인(Fan-In) / 팬아웃(Fan-Out)
✅ 정의
🔹 팬인(Fan-In)
- 어떤 모듈을 제어하는(호출하는) 모듈의 수
🔹 팬아웃(Fan-Out)
- 어떤 모듈이 제어하는(호출하는) 모듈의 수
✅ 해석 기준
🔹 팬인 ↑
- → 재사용성 ↑ / 신뢰성 ↑
🔹 팬아웃 ↑
- → 복잡도 ↑ / 결합도 ↑

🎯 포인트
- “들어오는 화살표 수” → 팬인
- “나가는 화살표 수” → 팬아웃
- 팬인이 크면 모듈이 공통적으로 많이 사용됨
- 팬아웃이 크면 해당 모듈이 많은 모듈을 제어 → 복잡
📊 시험 포인트 정리
🔥 무조건 외우는 순서 2개
- 결합도(약→강): 자스제외공내
- 응집도(강→약): 기순교절시논우
🔥 키워드로 바로 찍는 유형
- “전역 변수/공유 데이터” → 공통 결합도
- “제어 신호/처리 방법 전달” → 제어 결합도
- “다른 모듈 내부 직접 수정/참조” → 내용 결합도
- “출력이 다음 입력” → 순차적 응집도
- “단일 기능 수행” → 기능적 응집도
🔥 정의형
- 모듈: 기능 단위로 분리한 구성 요소
- 결합도: 모듈 간 의존 정도
- 응집도: 모듈 내부 요소의 관련성
- 팬인: 해당 모듈을 호출하는 모듈 수
- 팬아웃: 해당 모듈이 호출하는 모듈 수
📌 암기 핵심 요약
- 모듈 품질 기준 : 결합도 ↓ / 응집도 ↑ / 팬인 ↑ / 팬아웃 ↓

2025 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)
※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.
'Certifications > 정보처리기사 실기' 카테고리의 다른 글
| [시나공] 디자인 패턴(GoF) 총정리 + crontab 작성법 (0) | 2026.03.04 |
|---|---|
| [시나공] 정의형 총정리 (IPC·테스트 케이스·공통 모듈 명세·재사용·코드 체계) (0) | 2026.03.03 |
| [시나공] 객체지향 설계 & SOLID 원칙 완전 정리 (0) | 2026.03.03 |
| [시나공] 디자인 패턴 정리 (아키텍처 패턴 핵심 총정리) (0) | 2026.03.02 |
| [시나공] 인터페이스 연계 기술 정리 (XML · SOAP · WSDL) (0) | 2026.03.02 |