GPT5를 활용한 코드 변경 영향 분석 데이터셋 및 예비 연구
초록
본 논문은 코드 변경 시 발생하는 영향을 자동으로 예측하기 위한 데이터셋을 구축하고, 최신 대형 언어 모델인 GPT‑5를 적용한 초기 실험 결과를 제시한다. 데이터셋은 오픈소스 프로젝트의 커밋, 변경된 파일, 함수 호출 관계, 테스트 결과 등을 포함하며, GPT‑5는 자연어와 코드 양식을 동시에 이해해 영향 범위를 추론한다. 실험에서는 기존 정적 분석 도구와 비교해 높은 정확도와 낮은 오탐률을 기록했으며, 한계점과 향후 연구 방향도 논의한다.
상세 분석
이 연구는 코드 변경 영향 분석(Code‑Change Impact Analysis, CIA)의 두 가지 핵심 과제, 즉 “변경 대상 식별”과 “변경 파급 범위 예측”을 동시에 해결하기 위해 데이터 중심 접근과 대형 언어 모델(Large Language Model, LLM) 활용을 결합했다. 데이터셋 구축 단계에서는 GitHub 상 50개 이상의 활발히 유지보수되는 프로젝트를 선정했으며, 각 프로젝트에서 10만 개 이상의 커밋을 추출했다. 각 커밋은 (1) 변경 파일 리스트, (2) 수정된 라인 및 함수 시그니처, (3) 해당 커밋 이후 실행된 테스트 결과, (4) 연관된 이슈 트래커 기록 등 네 가지 메타데이터와 함께 저장되었다. 특히, 함수 호출 그래프와 의존성 그래프를 정적 분석 툴(예: Soot, jdeps)로 자동 생성해 구조적 정보를 보강함으로써 모델이 코드의 흐름을 이해하도록 설계했다.
모델 입력은 “프롬프트 + 코드 스니펫” 형태로 구성되었다. 프롬프트는 변경 파일 경로, 수정된 함수 시그니처, 그리고 변경 목적을 자연어로 서술한 부분을 포함했으며, 뒤에 해당 함수와 주변 컨텍스트(전후 5줄)의 코드를 삽입했다. GPT‑5는 사전 학습된 거대한 파라미터(수천억)와 함께, 추가적인 “인스트럭션 튜닝”을 통해 코드 변경 시나리오에 특화된 응답을 생성하도록 미세조정되었다. 출력은 “영향받는 파일/함수 리스트”와 “예상 위험도(높음/중간/낮음)” 두 가지 항목으로 구성되었다.
평가에서는 기존 정적 분석 기반 도구(예: ChangeDistiller, ImpactScope)와 비교했으며, 정밀도(Precision), 재현율(Recall), F1‑Score를 주요 지표로 사용했다. GPT‑5 기반 모델은 정밀도 0.84, 재현율 0.78, F1‑Score 0.81을 기록했으며, 특히 복합적인 리팩터링이 포함된 커밋에서 기존 도구보다 12% 높은 정확도를 보였다. 오탐률은 9%로, 기존 도구 평균 15%보다 현저히 낮았다. 그러나 모델은 대규모 프로젝트에서 메모리 제한으로 인해 입력 토큰 길이가 제한되는 문제와, 테스트 커버리지가 낮은 경우 예측 정확도가 급격히 떨어지는 현상을 보였다.
이러한 결과는 LLM이 코드와 자연어를 동시에 이해함으로써, 전통적인 정적 분석이 놓치기 쉬운 “비기능적” 변경 의도(예: 성능 최적화, 보안 패치)를 포착할 수 있음을 시사한다. 하지만 현재 단계에서는 모델이 “왜” 특정 파일이 영향을 받는지 설명하는 근거를 제공하지 못한다는 점이 한계로 남는다. 향후 연구에서는 설명 가능한 AI 기법을 결합해 영향 경로를 시각화하고, 토큰 제한 문제를 해결하기 위한 “계층적 프롬프트 설계”와 “지식 그래프 기반 보강”을 탐색할 계획이다.
댓글 및 학술 토론
Loading comments...
의견 남기기