본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Fan-In / Fan-Out

모듈 사이의 호출 관계 수를 나타내는 척도

  • 팬인(Fan-In) : 그 모듈을 호출하는 상위 모듈의 수
  • 팬아웃(Fan-Out) : 그 모듈이 호출하는 하위 모듈의 수

설계 구조도(structure chart)에서 위에서 들어오는 화살표 수가 팬인, 아래로 나가는 화살표 수가 팬아웃이다.

지표 높을 때 판단
팬인 여러 모듈이 이 모듈을 부른다 재사용성이 높다. 다만 이 모듈이 고장 나면 영향 범위가 크므로 신중한 테스트가 필요하다
팬아웃 이 모듈이 여러 모듈을 부른다 제어가 복잡하다. 너무 높으면 중간 계층을 두어 줄이는 것이 좋다

설계 목표는 팬인은 높이고 팬아웃은 낮추는 것이다. 시험에서 이 방향을 그대로 묻는다.

  • 한 모듈이 직접 제어하는 하위 모듈 수(팬아웃)는 7±2 정도가 적절하다고 본다. 사람이 한 번에 다룰 수 있는 항목 수(밀러의 7±2)를 넘으면 그 모듈의 제어 논리가 복잡해진다
  • "팬인은 다른 모듈을 직접 제어하는 수, 한 모듈에서 호출하는 모듈의 수" 는 팬아웃의 정의라 틀린 설명이다. 팬인은 그 모듈을 부르는 쪽의 수다
  • 좋은 설계는 이와 함께 모듈 인터페이스를 단순하게 하고 정보 은닉을 지켜 결합도를 낮춘다

모듈 A 를 B, C, D 가 호출하고, A 가 E, F 를 호출한다면

  • A 의 팬인 = 3
  • A 의 팬아웃 = 2

전체 시스템의 복잡도를 볼 때는 모든 모듈의 팬인·팬아웃 분포를 함께 본다.