🧩코드 복잡도 측정기

분석할 코드를 붙여넣으면 조건문과 반복문을 감지하여 복잡도 점수와 유지보수 등급을 산출합니다.

복잡도 점수 (CC)

1
코드를 입력해주세요.
감지된 항목개수
조건문 (if, case, &&, ||)0
반복문 (for, while, map)0
유지보수 등급-

좋은 코드는 '단순함'에서 나옵니다

소프트웨어 공학에서 '복잡도'는 버그의 온상과 같습니다. 토마스 맥케이브(Thomas J. McCabe)가 제안한 **순환 복잡도(Cyclomatic Complexity)**는 프로그램의 논리적인 흐름이 얼마나 꼬여 있는지를 정량적으로 보여주는 지표입니다. 하나의 함수에 너무 많은 `if`, `else`, `switch`문이 중첩되어 있거나 복잡한 루프가 얽혀 있다면, 그 코드는 읽기 힘들 뿐만 아니라 수정을 가했을 때 예상치 못한 사이드 이펙트(Side Effect)를 일으킬 확률이 매우 높습니다.

본 도구는 입력된 코드 내에서 실행 경로를 나누는 주요 키워드들을 분석하여 복잡도 점수를 계산합니다. 점수가 1~10 사이라면 매우 잘 구조화된 코드이며, 11~20 사이라면 복잡해지기 시작했으므로 주의가 필요합니다. 만약 점수가 20을 초과한다면, 해당 함수는 너무 많은 책임을 지고 있을 가능성이 큽니다. 이 경우 큰 함수를 작은 단위로 쪼개는 '함수 추출(Extract Method)' 리팩토링이 강력히 권장됩니다.

낮은 복잡도를 유지하는 것은 단순히 코드를 예쁘게 만드는 작업이 아닙니다. 복잡도가 낮을수록 테스트 케이스 작성이 쉬워지며, 새로운 팀원이 프로젝트에 합류했을 때 코드를 이해하는 시간을 획기적으로 줄여줍니다. 지금 바로 여러분이 작성한 핵심 로직을 복사하여 붙여넣어 보세요. 숫자로 나타나는 복잡도 점수가 여러분의 코드를 더 클린하고 견고하게 만드는 가이드가 되어줄 것입니다.

자주 묻는 질문 (FAQ)

Q: 주석도 복잡도 점수에 포함되나요?

A: 아니요, 이 도구는 실제 실행 로직과 관련된 키워드만 추출하여 계산하므로 주석은 점수에 영향을 주지 않습니다.

Q: 어떤 언어를 지원하나요?

A: C-style 문법을 사용하는 JavaScript, Java, Python, C++, PHP 등 대부분의 주요 프로그래밍 언어에서 공통적으로 쓰이는 제어문을 인식합니다.

Q: 복잡도 1점은 무엇을 의미하나요?

A: 분기나 반복이 전혀 없는 일직선 구조의 코드를 의미합니다. 가장 단순하고 안전한 형태입니다.