현재 선택한 정보처리 과정

정보처리기사 필기 이론 학습

이론 목록으로 돌아가기

결합도·응집도·팬인·팬아웃과 공통 모듈

결합도와 응집도, 팬인·팬아웃을 통해 모듈 독립성과 공통 모듈의 품질을 판단한다.

예상 읽기 4

모듈 독립성

모듈 독립성은 각 모듈이 하나의 분명한 책임을 수행하고 다른 모듈의 내부에 최소한으로 의존하는 정도다.

  • 낮은 결합도: 모듈 간 의존을 줄인다.
  • 높은 응집도: 한 모듈 안의 요소가 하나의 책임에 밀접하게 관련된다.

두 값은 서로 관련되지만 별개의 지표다. 결합도가 낮다고 응집도가 자동으로 높아지는 것은 아니다.

결합도

강한 결합에서 약한 결합 순서는 다음과 같다.

내용 → 공통 → 외부 → 제어 → 스탬프 → 자료

유형의미판별 단서
내용 결합다른 모듈의 내부 자료·코드에 직접 접근내부 분기·지역 데이터 직접 변경
공통 결합여러 모듈이 전역 자료 영역을 공유공통 데이터 변경이 넓게 파급
외부 결합외부 형식·프로토콜·장치 인터페이스에 공동 의존파일 형식, 통신 규약, 장치 인터페이스
제어 결합호출 모듈이 제어 정보를 넘겨 상대의 처리 방향 결정플래그·명령 코드 전달
스탬프 결합필요한 일부만 사용하면서 복합 자료 구조 전체 전달레코드·객체 전체 전달
자료 결합필요한 단순 자료만 매개변수로 전달최소한의 값 전달

제어 결합은 불리언 자료형 자체가 문제가 아니라, 그 값이 호출 대상의 내부 제어 흐름을 지시하는지가 핵심이다.

응집도

결합도·응집도 비교표를 설명하는 교육용 도식
결합도·응집도 비교표를 설명하는 교육용 도식

결합도·응집도 비교표

강한 응집에서 약한 응집 순서는 다음과 같다.

기능적 → 순차적 → 교환적(통신적) → 절차적 → 시간적 → 논리적 → 우연적

유형의미판별 단서
기능적하나의 명확한 기능 수행모든 요소가 같은 결과에 기여
순차적한 처리의 출력이 다음 처리의 입력데이터가 단계적으로 이어짐
교환적같은 입력이나 출력을 공유동일 자료를 중심으로 묶임
절차적정해진 실행 순서 때문에 묶임데이터보다 절차 순서가 중심
시간적같은 시점에 수행되어 묶임초기화·종료 처리
논리적비슷한 종류의 기능을 선택적으로 수행플래그로 입력·출력 기능 선택
우연적관련 없는 작업이 임의로 묶임공통 목적이 없음

순차적 응집은 출력→입력의 데이터 관계가 있고, 절차적 응집은 단지 실행 순서가 관련된다는 차이가 있다.

팬인과 팬아웃

팬인·팬아웃 예시도를 설명하는 교육용 도식
팬인·팬아웃 예시도를 설명하는 교육용 도식

팬인·팬아웃 예시도

  • 팬인(Fan-in): 해당 모듈을 직접 호출하는 서로 다른 모듈의 수
  • 팬아웃(Fan-out): 해당 모듈이 직접 호출하는 서로 다른 모듈의 수

실행 횟수나 간접 호출 전체를 세는 것이 아니다. 구조도의 화살표 방향과 범례를 먼저 확인한다.

  • 팬인이 높음: 여러 곳에서 재사용되는 중심 모듈일 수 있지만 변경 파급도 클 수 있다.
  • 팬아웃이 높음: 많은 모듈을 조정하므로 복잡성과 의존성이 커질 수 있다.

팬아웃 개수와 결합도의 강도는 같은 지표가 아니다. 호출 대상이 많아도 각 연결이 자료 결합일 수 있다.

공통 모듈과 재사용

공통 모듈은 여러 기능에서 같은 의미와 책임으로 반복되는 처리를 한 곳에 모은 재사용 단위다. 단순히 코드 모양이 비슷하다는 이유만으로 합치면 서로 다른 변경 이유가 묶일 수 있다.

명세 품질 기준

기준의미
정확성필요한 기능과 결과를 올바르게 기술
명확성한 가지 의미로 이해 가능
완전성입력·출력·예외·제약 누락 없음
일관성다른 명세와 용어·규칙이 충돌하지 않음
추적성요구사항과 설계·시험에 연결 가능

공통 모듈 인터페이스에는 목적, 입력·출력, 사전 조건, 오류, 부수 효과를 명확히 한다.