본문으로 건너뛰기

© 2026 Molayo

arXiv논문2026. 06. 04. 13:44

Code Lifespan Survival Analysis (CLSA): AST 인지 마이닝을 이용한 소스 코드 라인의 생존 예측

요약

개별 소스 코드 라인의 삭제 시점을 예측하는 최초의 프레임워크인 CLSA를 소개합니다. AST 구조와 라인 엔트로피 등 정적 요소를 활용해 코드의 생존 기간을 모델링하며, 유지보수 및 기술 부채 관리에 기여합니다.

핵심 포인트

  • 라인 단위의 코드 생존 예측을 위한 CLSA 프레임워크 제안
  • AST 구조 및 라인 엔트로피를 핵심 예측 변수로 활용
  • 리팩토링 노이즈를 분리하여 데이터 정확도 확보
  • 코드의 성숙도와 구조적 특성에 따른 시간별 위험 변화 분석

배경: 어떤 소스 라인이 삭제될지, 그리고 언제 삭제될지를 예측하는 것은 유지보수, 기술 부채 (technical debt), 그리고 리뷰 우선순위 지정에 있어 중요합니다. 기존의 MSR (Mining Software Repositories) 접근 방식은 파일 또는 메서드 단위의 세밀함(granularity)으로 작동하여, 개별 문장 수준의 위험을 가리는 문제가 있습니다. 목적: 우리는 개별 라인 단위의 코드 생존을 모델링하는 최초의 프레임워크인 Code Lifespan Survival Analysis (CLSA)를 소개합니다. CLSA는 각 라인을 우측 검열 (right-censored) 대상자로 취급하며, 구조적, 맥락적, 시간적 공변량 (covariates)으로부터 삭제 위험을 추정합니다. CLSA의 가장 강력한 예측 변수는 버전 히스토리나 버그 데이터 없이도 하나의 파일로부터 정적으로 계산 가능한 요소들(AST 구조 및 라인 엔트로피)입니다. 방법: 우리는 120개의 오픈 소스 TypeScript 저장소로부터 3,250만 개의 라인 생성 이벤트를 마이닝합니다. 5단계 이분 매칭 (bipartite matching) 파이프라인을 통해 실제 삭제와 리팩토링 노이즈 (마이그레이션 및 재작성)를 분리하여, 830만 개의 허위 사망 (false deaths)을 방지합니다. 우리는 15개의 공변량을 사용하여 Cox 비례 위험 (Cox Proportional Hazards) 모델을 적합시키고, Weibull/Log-Logistic AFT, 감마 취약성 (gamma frailty), 그리고 시간 계층화 랜드마크 (time-stratified landmark) 모델을 통해 강건성을 확인합니다. 결과: 모든 라인의 절반 이상은 삭제되지 않습니다 (Kaplan-Meier 중앙값에 도달하지 않음). 삭제된 라인 중 중앙 생존 기간은 95.7일입니다. 공변량의 효과는 시간에 따라 강하게 변하며, 세 가지 체제 (regimes)를 형성합니다. 라인 Shannon 엔트로피는 새로운 코드에 대해서는 중간 정도의 보호 효과를 보이며 (HR=0.84, 0-90일), 성숙한 코드에 대해서는 강력한 보호 효과를 보입니다 (HR=0.36, 365일 이상). 이는 비례 위험 모델의 위반을 설명해 줍니다. 조건부 분기 (conditional branches)에 있는 라인은 반대 양상을 보입니다: 생성 시에는 보호 요인이지만 (HR=0.97), 90일 이후에는 위험 요인이 됩니다 (HR=1.21). 저장소 정체성 (Repository identity)이 가장 큰 요인입니다: 감마 취약성 모델 (분산 theta=1.449)은 일치도 (concordance)를 0.586에서 0.666으로 높이며, 이는 모든 구조적 공변량을 압도합니다. 결론: 라인 수준의 생존 모델링은 실행 가능하며, 해석 가능하고 대부분 정적인 위험 신호와 함께 IDE 및 코드 리뷰에서 시간 조건부 위험 점수 산정을 위한 보정 레시피를 제공합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0