[시나공] 모듈 설계 품질 정리 (결합도·응집도·팬인/팬아웃)

2026. 3. 3. 20:20Certifications/정보처리기사 실기

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 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)

※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.