학습 목표
직접 호출 관계의 서로 다른 이웃만 센다.
본문
핵심 이론
Fan-in은 해당 모듈을 직접 호출하는 모듈 수, Fan-out은 해당 모듈이 직접 호출하는 모듈 수다. 방향 그래프에서 들어오는 간선과 나가는 간선을 구별한다.
한 호출자가 같은 모듈을 10번 호출해도 서로 다른 호출자 수 기준 Fan-in에는 1만 더한다. 간접적으로 도달하는 모듈은 직접 Fan-out에 넣지 않는다.
A→M, B→M, M→X, M→Y에서 M의 Fan-in과 Fan-out은 각각 2다. 중계 모듈을 추가·제거할 때 변경된 직접 간선만 다시 센다.
높은 Fan-in은 공통 기능의 활용을 나타낼 수 있지만 숫자만으로 좋은 설계라고 단정하지 않는다. 호출 관계와 변경 영향까지 함께 해석한다.
직접 연결을 세는 표를 만든다
Fan-in은 화살표가 들어오는 쪽, Fan-out은 나가는 쪽이다. 먼저 기준 모듈을 원으로 표시한 다음 들어오는 화살표의 출발점과 나가는 화살표의 도착점을 서로 다른 집합으로 적는다.
A→M, B→M, M→X, M→Y, Y→Z이면 M의 직접 호출자는 A·
| 세려는 것 | 포함 | 제외 |
|---|---|---|
| 직접 호출자 수 | 서로 다른 출발 모듈 | 같은 모듈의 반복 호출 횟수 |
| 직접 호출 대상 수 | 바로 연결된 도착 모듈 | 중간 모듈 너머의 도달 대상 |
공통 처리 X·
풀이 예시
모듈 관계가 M→N, M→P, N→Q, P→Q, P→R, R→S이다. 직접 호출되는 서로 다른 모듈 수를 기준으로 M의 FAN-OUT 값을 쓰시오.
정답과 풀이 보기
예시 정답
2
풀이 과정
M이 직접 호출하는 모듈은 N,P뿐이다. Q,R,S에 간접적으로 도달할 수 있어도 M의 직접 FAN-OUT에 더하지 않는다.