LLM 기반 Java 코드 마이그레이션 벤치마크 JMigBench 소개
초록
본 논문은 Java 8에서 Java 11로의 함수 수준 마이그레이션을 평가하기 위한 JMigBench 벤치마크를 제안한다. 초기 자동 수집 데이터의 품질 문제를 극복하고, 8가지 폐기 API 카테고리를 포함한 45개의 고품질 함수 쌍을 수동·ChatGPT 보조로 재구성하였다. Mistral Codestral 모델을 CodeBLEU와 키워드 기반 정확도 지표로 평가한 결과, 단순 1:1 API 교체에서는 11.11%의 완전 일치, 키워드 제거 성공률은 31.82%에 머물렀으며, CORBA·JAX‑WS와 같은 복합 마이그레이션에서는 전혀 성공하지 못했다. 연구는 LLM이 반복적인 마이그레이션 작업을 부분적으로 자동화할 수 있지만, 현재 수준에서는 인간 검증이 필수임을 강조한다.
상세 분석
JMigBench는 기존 코드 마이그레이션 벤치마크가 갖는 두 가지 근본적인 한계를 보완한다. 첫째, MigrationBench와 달리 함수 단위의 정밀한 정답(pairwise) 데이터를 제공함으로써 LLM이 생성한 코드와 인간이 작성한 정답을 직접 비교할 수 있다. 둘째, 기존 CODEMENV이 제한된 시나리오에 머무른 반면, JMigBench는 Java 8→Java 11이라는 실무에서 여전히 많이 사용되는 버전 전이를 목표로 삼아, LTS 간의 실제 마이그레이션 필요성을 반영한다.
데이터 구축 과정에서 저자들은 GitHub 스타 10,000 이상인 대형 프로젝트를 대상으로 릴리즈 노트·커밋 로그를 키워드 매칭하여 마이그레이션 흔적을 탐색했다. 초기 자동 수집 단계에서는 ORB, Service, Any 등 일반적인 문자열이 포함된 오탐이 대다수였으며, 실제 폐기 API 비중이 매우 낮아 데이터 편향이 심했다. 특히 JAX‑WS와 CORBA가 과도하게 집중되는 문제와, 많은 샘플이 이미 Java 11 호환 코드였던 점이 드러났다.
이를 해결하기 위해 저자들은 키워드 리스트를 재정의하고, ChatGPT를 활용한 코드 생성을 통해 45개의 함수 쌍을 인위적으로 구성했다. 이 과정에서 각 함수는 동일한 시그니처와 파라미터 수를 유지하면서, Collections.singletonList → List.of, Thread.stop → Thread.interrupt 등 명시적인 API 교체를 포함한다. 최종 데이터셋은 평균 함수 길이 9.69줄(Java 8)·8.33줄(Java 11)로, 길이 편차가 작고, 8가지 카테고리(예: 컬렉션, 네트워킹, XML, 등) 간에 균형 잡힌 분포를 보인다.
평가에서는 두 가지 연구 질문(RQ)을 설정했다. RQ1은 Lexical·Semantic 유사도를 CodeBLEU(가중 n‑gram)와 데이터 흐름 매칭 점수로 측정했으며, RQ2는 Deprecated 키워드 제거율을 역비율(1‑(남은 키워드/전체 키워드))로 정의했다. 실험에 사용된 LLM은 Mistral Codestral 2501이며, 시스템·사용자 역할 프롬프트를 고정해 일관된 컨텍스트를 제공하였다.
결과는 기대와 크게 다르지 않다. 단순 1:1 교체가 가능한 경우에만 정답 일치율 11.11%, 키워드 제거 성공률 31.82%를 기록했으며, 복합적인 API(예: CORBA Any 처리, JAX‑WS Service 설정)에서는 키워드가 전혀 제거되지 않았다. 이는 현재 LLM이 문맥 이해와 복합 변환에 한계가 있음을 시사한다. 또한, CodeBLEU 점수는 평균 0.42로, 인간이 만든 코드와 비교해 구조적·의미적 차이가 여전히 크다.
위협 요인으로는(1) 데이터셋 규모가 45개에 불과해 통계적 일반화가 제한적이며, (2) 인위적으로 생성된 샘플이 실제 프로젝트의 복잡성을 완전히 반영하지 못한다는 점, (3) 프롬프트 설계가 단일 형태에 국한돼 다양한 프롬프트 전략을 탐색하지 못했다는 점을 들었다.
향후 연구 방향은 (i) 더 큰 규모와 다양성을 갖춘 실제 오픈소스 기반 함수 쌍 확보, (ii) 다중 프롬프트·체인 기법과 리팩터링 도구와의 하이브리드 접근법 검증, (iii) 다중 LLM 비교(예: GPT‑4o, Claude 3)와 인-컨텍스트 학습을 통한 성능 향상이다. 전반적으로 JMigBench는 LLM 기반 코드 마이그레이션 연구에 필요한 정밀한 평가 인프라를 제공하며, 향후 보다 실용적인 자동 마이그레이션 솔루션 개발의 초석이 될 것으로 기대된다.
댓글 및 학술 토론
Loading comments...
의견 남기기