Cyclomatic Complexity 25 초과? Microsoft가 경고하는 C# 메서드의 위험 신호

Cyclomatic Complexity in C#

Cyclomatic Complexity 25 초과? Microsoft가 경고하는 C# 메서드의 위험 신호

Cyclomatic Complexity는 C# 메서드의 독립 실행 경로 수를 측정하는 지표로, 1976년 Thomas McCabe가 제안했습니다. 점수가 높을수록 테스트와 유지보수가 어려워지며, McCabe는 10 이하를 권장하고 Microsoft의 CA1502 분석기는 25 초과를 과도한 복잡성으로 간주합니다. 이 글은 C# 예제를 통해 복잡도 계산법, 임계값, 리팩터링 기법, NDepend와 Visual Studio를 이용한 측정 및 시각화, 그리고 테스트 커버리지와 결합한 CRAP 점수까지 설명합니다.

실질적으로 올바른 임계값은 코드베이스에 따라 다릅니다. 파서, 직렬화기 또는 상태 머신은 객관적으로 나쁘지 않으면서도 일상적으로 15-25 범위에 머무릅니다. 25점을 기록하는 비즈니스 로직 조각은 거의 항상 나쁩니다.

이 날의 다른 글

2026-09-18