팬인-팬아웃
IT위키
더 많은 작업
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
전체 시스템의 복잡도를 볼 때는 모든 모듈의 팬인·팬아웃 분포를 함께 본다.