LLM 관점에서 재조명한 코드 복잡도: LM‑CC 메트릭 제안

LLM 관점에서 재조명한 코드 복잡도: LM‑CC 메트릭 제안
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

전통적인 사이클로매틱·Halstead 등 복잡도 지표는 코드 길이를 통제하면 LLM 성능과 일관된 상관관계를 보이지 않는다. 저자들은 LLM이 느끼는 난이도가 “비선형 의미 흐름”에 기인한다는 가설 아래, 토큰 엔트로피 기반으로 의미 단위를 추출하고 계층적 구조로 조직한 LM‑CC 지표를 설계했다. 실험 결과 LM‑CC는 기존 지표보다 LLM 성능과 강한 음의 부분 상관(r≈‑0.92~‑0.97)을 보이며, LM‑CC를 낮추는 코드 변환이 실제 과제 정확도를 20% 이상 향상시킨다.

상세 분석

이 논문은 두 가지 근본적인 질문을 제기한다. 첫째, 전통적인 코드 복잡도 지표가 LLM이 코드를 처리할 때 겪는 ‘인지적 부담’을 제대로 반영하는가? 둘째, LLM 특성에 맞는 복잡도 정의는 어떻게 설계할 수 있는가?

저자들은 3개의 대표적 코드 과제(프로그램 수리, 코드 번역, 실행 추론)와 DeepSeek‑V3.1 모델을 사용해, 사이클로매틱 복잡도(CC), Halstead 난이도(HC), 유지보수 지수(MI), 인지 복잡도(CoC) 등 기존 지표와 pass@1 성능 사이의 상관관계를 조사한다. 길이 효과를 제거하기 위해 부분 상관(partial correlation) 분석을 적용했으며, 그 결과 대부분의 전통 지표는 통계적으로 유의미한 상관을 보이지 않는다. 이는 전통 지표가 제어 흐름이나 연산자·피연산자 분포와 같은 인간 중심의 구조적 특성에 초점을 맞추는 반면, LLM은 토큰 시퀀스를 확률적으로 예측하는 과정에서 ‘비선형 의미 흐름’에 의해 불확실성이 급증한다는 점을 시사한다.

이에 기반해 제안된 LM‑CC는 두 축으로 복잡도를 정량화한다. 첫 번째 축인 ‘구성 레벨’은 의미 단위가 얼마나 깊게 중첩되는지를 나타내며, 이는 토큰 엔트로피가 높은 구간을 경계로 삼아 계층적 트리를 구성함으로써 측정한다. 두 번째 축인 ‘분기 인자’는 동일 레벨 내에서 발생하는 조건·반복문 등 분기점의 밀도를 반영한다. 각 의미 단위에 대해 로컬 복잡도 점수를 계산하고, 가중 합산을 통해 전체 프로그램의 LM‑CC 값을 도출한다.

실험에서는 LM‑CC가 모든 과제에서 강한 음의 부분 상관(r ≈ ‑0.92 ~ ‑0.97)을 기록했으며, 이는 기존 지표보다 30~40% 정도 높은 설명력을 의미한다. 또한, 의미 보존 리팩터링(예: 중첩을 완화하거나 분기 구조를 단순화)으로 LM‑CC를 감소시켰을 때, 모델의 pass@1 점수가 평균 12%에서 최대 20.9%까지 상승한다. 이는 LM‑CC가 단순히 복잡도 예측 지표를 넘어, 실제 코드 최적화 목표로 활용될 수 있음을 보여준다.

이 논문의 주요 기여는 (1) 전통 복잡도 지표와 LLM 성능 사이의 실증적 불일치를 최초로 체계화한 점, (2) LLM의 토큰‑레벨 불확실성을 기반으로 의미 단위와 계층 구조를 정의한 새로운 복잡도 메트릭 LM‑CC를 제안한 점, (3) LM‑CC가 다양한 코드 과제에서 기존 지표를 능가함을 실험적으로 입증하고, 복잡도 감소가 직접적인 성능 향상으로 이어짐을 증명한 점이다.

이 연구는 앞으로 LLM 기반 코드 지원 도구가 복잡도 지표를 재정의하고, 복잡도‑성능 트레이드오프를 정량적으로 관리하는 새로운 패러다임을 제시한다는 점에서 학술적·실용적 의미가 크다.


댓글 및 학술 토론

Loading comments...

의견 남기기