
이 글은 기존 LLM 기반 코드 생성 평가의 한계를 짚고, 장기적인 코드 유지보수 능력을 실제 개발 환경에 가깝게 측정하기 위해 제안된 SWE-CI 벤치마크를 정리합니다.
정적인 기능 정확성 중심 평가에서 벗어나, 코드가 시간에 따라 어떻게 진화하고 유지되는지를 어떻게 측정하는지, 그리고 실험 결과가 무엇을 시사하는지를 중심으로 설명합니다.
기존 LLM 코드 벤치마크의 한계
기존 LLM 기반 소프트웨어 엔지니어링 벤치마크는 대부분 다음과 같은 특징을 가집니다.
- 단발성(one-shot) 코드 생성
- 정적(static) 스냅샷 기준 평가
- 기능이 “한 번” 맞는지 여부에 집중
하지만 실제 소프트웨어 개발은 다릅니다.
요구사항은 계속 바뀌고, 기능은 반복적으로 추가·수정되며, 이전 결정의 영향이 누적됩니다. 즉, 유지보수(maintenance) 자체가 핵심 역량입니다. 기존 벤치마크는 이 지점을 제대로 측정하지 못했습니다.
SWE-CI란 무엇인가
SWE-CI는 이러한 한계를 극복하기 위해 제안된 CI(Continuous Integration) 루프 기반의 최초 리포지토리 수준 벤치마크입니다.
핵심 목표는 코드 생성 평가의 기준을 다음과 같이 전환하는 것입니다.
- 단기 기능 정확성 → 장기 유지보수성
- 정적 스냅샷 → 동적 진화 과정
SWE-CI는 실제 오픈소스 프로젝트의 장기 개발 이력을 기반으로, 코드가 반복적으로 수정되는 상황에서 LLM 기반 에이전트가 얼마나 안정적으로 품질을 유지하는지를 평가합니다.
진화 기반 평가 패러다임
SWE-CI는 코드 수정 과정을 하나의 반복 루프로 정의합니다.
- 현재 코드에서 요구사항을 도출
- 요구사항을 기반으로 코드 수정
- 수정된 코드의 테스트 결과가 다음 반복에 영향을 미침
이 구조에서는 이전 선택의 결과가 다음 단계로 그대로 전달됩니다.
따라서 단순히 “이번 수정이 맞았는지”가 아니라, 여러 번의 수정 이후에도 코드 품질이 유지되는지를 관찰할 수 있습니다.
기능 변화 측정: 정규화된 변경 지표
코드 품질의 변화를 정량적으로 비교하기 위해, SWE-CI는 테스트 통과 개수 기반의 정규화된 변경 값을 도입합니다.
- 테스트 통과 수가 증가하면 개선
- 감소하면 회귀(regression)
- 결과는 -1에서 1 사이의 동일한 척도로 표현
이 방식의 핵심은 개선과 회귀를 같은 기준에서 비교할 수 있다는 점입니다.
단기적인 성능 향상뿐 아니라, 품질 악화까지 명확히 드러납니다.
유지보수성 점수: EvoScore
장기 유지보수성을 하나의 값으로 표현하기 위해 EvoScore가 제안됩니다.
- 여러 반복(iteration)의 코드 상태를 종합
- 뒤쪽 반복일수록 더 큰 가중치 부여 가능
- 장기 안정성을 중시하는 평가 방식
이는 유지보수성을 “미래 수정에서도 기능 정확성을 유지하는 능력”으로 정의하며, 단기 성과보다 시간이 지날수록 얼마나 잘 버티는가에 초점을 둡니다.
실제 개발 이력을 반영한 데이터셋 구성
SWE-CI 데이터셋은 엄격한 기준을 통해 구축되었습니다.
- 최소 3년 이상 유지된 Python 프로젝트
- 충분한 스타 수와 테스트 스위트 보유
- 명확한 라이선스 조건
- 장기간 연속 커밋에서 의미 있는 코드 변화가 존재
이 과정은 GitHub에 공개된 수천 개의 리포지토리 중에서 선별적으로 진행되었으며,
최종적으로 68개 리포지토리에서 추출된 100개 과제가 포함되었습니다.
각 샘플은 수개월에 걸친 실제 개발 기록과 수백 라인의 코드 변경을 포함합니다.
Architect–Programmer 이중 에이전트 구조
SWE-CI는 실제 CI 환경을 모델링하기 위해 이중 에이전트 프로토콜을 사용합니다.
Architect Agent
- 실패한 테스트를 분석
- 원인을 요약하고 위치를 파악
- 상위 수준의 요구사항 문서 생성
Programmer Agent
- 요구사항을 코드 명세로 해석
- 구현 계획 수립
- 실제 코드 수정 수행
중요한 점은 Programmer가 테스트 결과가 아닌 요구사항 문서에 의해 구동된다는 점입니다.
이는 실제 팀 개발에서의 역할 분리를 반영합니다.
실험 결과가 말해주는 것
다수의 모델을 평가한 결과, LLM의 코드 유지보수 역량은 분명히 발전하고 있습니다.
특정 모델 계열은 장기적인 성능에서 두각을 보였고, 제공업체별로 단기·장기 선호 전략의 차이도 관찰되었습니다.
그러나 가장 중요한 결론은 명확합니다.
- 대부분의 모델이 회귀 제어에 여전히 취약
- 장기 반복 과정에서 코드 품질을 안정적으로 유지하지 못함
- 무회귀율이 전반적으로 매우 낮음
이는 스냅샷 기반 코드 수정에서는 성능이 좋아 보이더라도,
완전히 자동화된 장기 유지보수 시나리오에서는 아직 갈 길이 멀다는 것을 의미합니다.
SWE-CI는 “작동하는 코드”를 넘어, “지속 가능한 코드”를 평가하기 위한 기준을 제시합니다.
코드베이스가 진화하는 과정에서 의사결정이 어떻게 누적되는지를 정량적으로 보여주며,
현재 LLM 기반 에이전트의 한계 또한 명확히 드러냅니다.
이 벤치마크는 단순한 평가 도구를 넘어,
장기 유지보수가 가능한 차세대 코딩 에이전트 개발을 촉진하는 출발점이 될 수 있습니다.
앞으로의 LLM 연구와 제품 개발에서, 단기 정확성만큼이나 장기 안정성이 중요해질 것임을 시사합니다.
https://arxiv.org/abs/2603.03823
SWE-CI: Evaluating Agent Capabilities in Maintaining Codebases via Continuous Integration
Large language model (LLM)-powered agents have demonstrated strong capabilities in automating software engineering tasks such as static bug fixing, as evidenced by benchmarks like SWE-bench. However, in the real world, the development of mature software is
arxiv.org

'인공지능' 카테고리의 다른 글
| 장시간 실행 애플리케이션 개발을 위한 Harness 설계 이해하기 — 자율 에이전트 코딩의 성능을 끌어올리는 방법 (0) | 2026.03.25 |
|---|---|
| Claude Code Auto Mode 공개: 권한 승인 부담을 줄이면서 안전성을 유지하는 새로운 퍼미션 전략 (0) | 2026.03.25 |
| Anthropic Claude Dispatch 등장 배경과 OpenClaw 열풍이 보여주는 AI 에이전트 경쟁 구도 (0) | 2026.03.25 |
| Kubernetes 네이티브 AI 인프라 패턴으로 대규모 추론 환경 운영하기 (0) | 2026.03.25 |
| IDE의 죽음인가, 진화인가: 에이전트 오케스트레이션 시대로 이동하는 개발 환경의 중심 (0) | 2026.03.24 |