"우리 서비스, 왜 자꾸 그 화면에서만 버그가 터질까요? 개발사에 물어보면 '원래 좀 복잡한 부분'이라는데… 대체 어디가 얼마나 복잡한 건지 숫자로 보여줄 방법은 없나요?"
— 어느 커머스 스타트업 대표님의 실제 하소연
코드는 눈에 안 보입니다. 그래서 "어디가 위험한지" 감으로만 얘기합니다. 하지만 소프트웨어 공학에는 이미 40년 넘게 검증된 숫자 지표가 있습니다. 바로 순환 복잡도(Cyclomatic Complexity)입니다. 함수 하나에 if·for·while·switch 같은 '분기'가 몇 개나 얽혀 있는지를 정수로 계산하는 방법이죠.
이 숫자가 높을수록 테스트해야 할 경우의 수가 폭발하고, 버그가 숨을 곳이 많아집니다. 그리고 놀랍게도 — 이걸 자동으로 측정하고, AI가 위험도를 해석해서, 리팩터링 우선순위 리포트까지 뽑아주는 봇은 비전공자도 만들 수 있습니다. 오늘은 이 봇을 만들어 외주 개발사·SI업체·바이브코딩 스타트업에 월 100만 원 받는 5단계 실전 가이드를 드립니다.
순환 복잡도는 "코드가 얼마나 얽혀 있는가"를 숫자로 바꾼 지표입니다. 이 숫자를 자동으로 뽑아 AI에게 해석시키면, 개발 지식이 없어도 "어느 파일부터 고쳐야 하는지" 리포트를 팔 수 있습니다.
순환 복잡도가 대체 뭔가요? (30초 이해)
순환 복잡도는 토머스 매케이브(Thomas McCabe)가 1976년에 제안한 지표입니다. 계산법은 의외로 단순합니다. 함수 안에 있는 분기점(if, for, while, case, &&, || 등)의 개수 + 1. 그게 곧 복잡도 점수예요. 점수가 높을수록 그 함수를 완벽히 테스트하려면 필요한 경로가 많다는 뜻입니다.
핵심은 이겁니다. 복잡도 20이 넘는 함수는 버그 발생률이 급격히 치솟습니다. 실제 연구에서도 복잡도가 높은 모듈일수록 결함 밀도가 비례해 증가한다는 결과가 반복적으로 나왔습니다. 그러니 "어디가 터질지"를 예측하는 데 이보다 좋은 출발점이 없죠.
왜 이게 월 100만 원짜리 서비스가 되나?
외주 개발사와 SI업체는 여러 프로젝트를 동시에 굴립니다. 인수인계 때마다 "이 코드 상태 괜찮나?"를 판단할 근거가 필요하죠. 요즘 급증하는 바이브코딩(AI로 빠르게 짜는) 스타트업은 코드가 순식간에 쌓이지만, 품질을 볼 사람이 없습니다. 이들에게 매주 자동으로 날아오는 '위험 함수 TOP 10 + 리팩터링 순서' 리포트는 사람 한 명 고용하는 것보다 훨씬 싼 보험입니다.
봇을 만드는 5단계 실전 로드맵
STEP 1 · 코드 수집: 깃허브를 자동으로 읽어오기
고객사 저장소 주소만 받으면 됩니다. GitHub API 토큰과 git clone 한 줄이면 코드가 손에 들어옵니다. 이 부분은 AI에게 "파이썬으로 특정 깃허브 저장소를 클론하는 스크립트 만들어줘"라고 요청하면 10분 안에 완성됩니다. 비전공자가 가장 겁내는 부분이지만, 실제론 가장 쉬운 단계예요.
STEP 2 · 복잡도 측정: 돈 안 드는 오픈소스로
직접 계산할 필요가 전혀 없습니다. 이미 무료 도구가 다 해줍니다.
radon (함수별 복잡도를 A~F 등급으로 출력)• JavaScript/TS →
ESLint complexity 규칙 또는 plato• 다국어 통합 →
lizard (C, Java, Go, JS 등 대부분 지원)
터미널에 lizard ./프로젝트폴더 한 줄만 치면, 모든 함수의 복잡도가 표로 쏟아집니다. 이 결과를 파일(CSV·JSON)로 저장하는 것까지가 STEP 2입니다.
측정 도구는 이미 세상에 다 나와 있습니다. 여러분이 만드는 건 '측정기'가 아니라, 측정 결과를 고객이 이해하고 돈 낼 만한 리포트로 바꾸는 파이프라인입니다. 여기가 진짜 부가가치예요.
STEP 3 · AI 해석: 숫자를 '사람 말'로 번역
여기가 봇의 심장입니다. 측정된 점수와 해당 함수 코드를 AI(Claude API 등)에게 넘기고 이렇게 시킵니다.
그러면 AI가 "이 결제 검증 함수는 예외 처리가 한 곳에 뭉쳐 있어 위험합니다. 검증 로직을 3개 함수로 분리하면 복잡도가 24→8로 떨어집니다" 같은 실전 조언을 자동으로 써줍니다.
STEP 4 · 우선순위 리포트: '무엇부터 고칠지' 정렬
복잡도만으로 순서를 매기면 안 됩니다. 복잡도 × 변경 빈도(자주 수정되는 파일인가)로 점수를 매겨야 진짜 '터질 곳'이 보입니다. 아무도 안 건드리는 복잡한 함수보다, 매주 수정되는 복잡한 함수가 훨씬 위험하니까요.
이 매트릭스를 표로 만들어 "이번 주 최우선 수정 함수 TOP 10"을 뽑아냅니다. 각 항목에 파일 위치, 현재 복잡도, AI 진단, 예상 개선 점수를 붙이면 리포트 완성입니다.
STEP 5 · 자동 배달 & 구독화
마지막은 정기 발송입니다. 서버에 예약 작업(cron)을 걸어 매주 월요일 아침 리포트를 자동 생성하고, 슬랙 채널이나 이메일로 쏘게 합니다. 고객은 아무것도 안 해도 매주 "우리 코드 건강검진표"를 받게 되죠. 이 '자동으로 알아서 온다'는 점이 바로 월 구독료를 정당화하는 핵심입니다.
얼마를 받고, 어떻게 파나?
영업은 어렵지 않습니다. 잠재 고객의 공개 깃허브 저장소로 무료 샘플 리포트를 먼저 만들어 보내세요. "귀사 코드에서 위험도 상위 3개 함수를 뽑아봤습니다"라는 한 통의 메일이, 그 어떤 제안서보다 강력합니다. 실제 자기네 코드의 위험 지점을 숫자로 마주하면 대부분 대화가 시작됩니다.
복잡도 점수만 던지지 마세요. 고객이 돈을 내는 이유는 숫자가 아니라 "그래서 뭘 먼저 해야 하는지"입니다. AI 해석과 우선순위가 빠진 리포트는 그냥 무료 도구 출력물일 뿐입니다. 여러분의 상품은 '판단'을 파는 것입니다.
정리하며
순환 복잡도는 40년간 검증된 이론, 측정 도구는 무료, 해석은 AI가 대신해줍니다. 여러분이 조립할 것은 수집 → 측정 → 해석 → 정리 → 배달이라는 5개의 연결고리뿐입니다. 코딩 지식이 깊지 않아도, AI에게 각 단계를 시키며 붙여나가면 몇 주 안에 첫 리포트를 만들 수 있습니다. 그리고 그 리포트는 코드가 안 보여 답답했던 수많은 개발사·SI·스타트업에게 매달 팔릴 수 있는 상품이 됩니다.