TICoder: 테스트 주도 계획 및 구현 인지 재사용을 통한 저장소 수준 코드 생성 프레임워크
요약
TICoder는 테스트 주도 계획과 구현 인지 재사용을 결합한 새로운 저장소 수준 코드 생성 프레임워크입니다. 테스트 케이스를 통해 계획을 정교화하고 이중 관점 유사도로 함수 재사용성을 높여 기존 SOTA 모델보다 높은 성능을 보였습니다.
핵심 포인트
- 테스트 케이스를 활용한 테스트 주도 반복 계획 메커니즘 도입
- 기능 및 구현 측면을 모두 고려한 이중 관점 유사도 검색 전략
- 구조 기반 클러스터링과 퍼플렉시티 필터링을 통한 코드 재사용 최적화
- 기존 SOTA 대비 평균 11.52%의 성능 향상 달성
대규모 언어 모델 (LLMs)을 이용한 저장소 수준 (Repository-level) 코드 생성은 복잡한 의존성과 제한된 컨텍스트 창 (context windows)으로 인해 여전히 어려운 과제로 남아 있습니다. 최근의 접근 방식들은 저장소 내의 잠재적인 피호출 함수 (callee functions)를 재사용하기 위해 검색 증강 생성 (RAG) 및 계획 (planning) 메커니즘을 채택하고 있습니다. 그러나 이러한 방식들은 두 가지 한계점을 겪는 경우가 많습니다. 바로 계획 단계에서 테스트 주도적인 행동 가이드 (test-driven behavioral guidance)가 부족하다는 점과, 재사용 과정에서 저장소 코드에 내재된 구현 로직 (implementation logic)을 간과한다는 점입니다. 그 결과, 생성된 계획이 기대되는 동작과 일치하지 않을 수 있으며, 검색된 함수들이 효과적으로 재사용되지 못할 수 있습니다. 본 논문에서는 계획과 재사용을 모두 개선하는 새로운 저장소 수준 코드 생성 프레임워크인 TICoder를 제안합니다. TICoder는 테스트 케이스를 행동 명세 (behavioral specifications)로 활용하여 구현 단계 (implementation steps)를 정교화하는 테스트 주도 반복 계획 (test-driven iterative planning) 메커니즘을 도입합니다. 또한, TICoder는 기능적 측면과 구현적 측면을 모두 포착하는 이중 관점 유사도 (dual-view similarity)를 사용하여 잠재적인 피호출 함수를 검색하는 구현 인지 코드 재사용 (implementation-aware code reuse) 전략을 채택합니다. 그런 다음 구조 기반 클러스터링 (structure-based clustering)과 퍼플렉시티 기반 필터링 (perplexity-based filtering)을 결합한 이단계 선택 전략을 통해 관련 사용 패턴을 식별합니다. 우리는 다양한 LLMs를 사용하여 널리 사용되는 저장소 수준 코드 생성 벤치마크에서 광범위한 실험을 수행했습니다. 실험 결과, TICoder는 최신 기술 (SOTA) 방법들을 능가하며 평균 11.52%의 성능 향상을 달성함을 입증했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기