SWE-CI: Evaluating Agent Capabilities in Maintaining Codebases via Continuous Integration

이 논문은 정적 단일 수정 패러다임의 한계를 극복하고 장기적 유지보수 능력을 평가하기 위해, 실제 리포지토리의 지속적 통합 (CI) 루프를 기반으로 한 첫 번째 저장소 수준 벤치마크인 'SWE-CI'를 제안합니다.

Jialong Chen, Xander Xu, Hu Wei, Chuan Chen, Bing Zhao

게시일 2026-03-05
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

1. 기존 방식: "한 번에 완벽하게 짓는 건축가" (SWE-bench 등)

지금까지 AI 코딩 능력을 평가할 때는 주로 **"주어진 설계도대로 집을 한 번에 완벽하게 지을 수 있는가?"**를 봤습니다.

  • 상황: 건축주 (테스트) 가 "벽을 3 개 만들고 문은 2 개 달아줘"라고 하면, AI 는 그걸 딱 맞춰서 집을 짓습니다.
  • 문제점: AI 가 집을 지을 때, 나중에 고치기 힘든 나쁜 재료를 쓰거나 구조를 엉망으로 지어도, 당장 문을 열고 들어가는 순간만 잘되면 합격으로 쳤습니다.
  • 현실: 실제 세상에서는 건물을 지은 후에도 10 년, 20 년을 유지해야 합니다. 그때마다 "창문 하나 더 달아줘", "2 층을 확장해줘" 같은 요청이 들어오는데, 처음에 엉망으로 지은 집은 조금만 건드려도 무너집니다.

2. 새로운 방식 (SWE-CI): "오래가는 집을 짓고 관리하는 건축팀"

이 논문은 SWE-CI라는 새로운 평가 기준을 제안합니다. 이는 **"집을 짓고 나서, 1 년, 2 년, 10 년이 지나도 계속 수리하고 확장할 수 있는가?"**를 봅니다.

  • 비유: AI 는 이제 단순히 집을 한 번 짓는 게 아니라, **수십 년 동안 이어지는 '리모델링 프로젝트'**에 참여합니다.
  • 과정:
    1. 기초 공사 (Base): 기존에 지어진 집을 봅니다.
    2. 요청 (Requirement): "이제 2 층을 추가해야 해"라고 요청이 옵니다.
    3. 시공 (Code): AI 가 2 층을 추가합니다.
    4. 검사 (Test): 2 층이 잘 붙었는지, 그리고 기존 1 층이 무너지지 않았는지 확인합니다.
    5. 반복: 이 과정을 수십 번 반복합니다. (실제 데이터는 평균 71 번의 수정과 233 일의 시간이 걸리는 프로젝트입니다.)

3. 핵심 메커니즘: "건축가 (Architect)"와 "현장 기술자 (Programmer)"

이 평가는 AI 를 두 명의 역할로 나누어 협업하게 합니다.

  • 건축가 (Architect): "무엇을 고쳐야 할지"를 분석합니다. "이게 고장 났네, 왜 고장 났지? 어떻게 고칠지 큰 그림을 그려줘."라고 요구사항을 정리합니다.
  • 현장 기술자 (Programmer): 건축가의 지시를 듣고 실제로 코드를 수정합니다.
  • 핵심: 이 두 명이 **Continuous Integration (지속적 통합)**이라는 과정을 통해, 마치 실제 소프트웨어 회사처럼 끊임없이 수정하고 테스트하는 사이클을 돌립니다.

4. 점수 매기는 법: "EvoScore (진화 점수)"

단순히 "집이 무너지지 않았나?"만 보는 게 아닙니다.

  • 초반 점수: 처음에 집을 잘 고쳤다면 점수를 줍니다.
  • 후반 점수: 하지만 나중에 더 많은 수정이 들어왔을 때, 처음에 잘 지어둔 구조 덕분에 쉽게 고쳐졌다면 더 높은 점수를 줍니다.
  • 반대 경우: 처음에 급하게 고쳐서 당장은 잘 됐는데, 나중에 고치려고 할 때마다 벽이 무너지거나 (Regression, 회귀) 고치기 힘들다면 점수가 깎입니다.
  • 결론: 오래갈 수 있는 튼튼한 구조를 만든 AI 가 진짜 승자입니다.

5. 실험 결과: "아직 갈 길이 멀다"

저자들은 최신 AI 모델 18 개를 이 테스트에 시켰습니다.

  • 좋아진 점: AI 가 코드를 짜는 능력은 정말 빨라졌습니다.
  • 아쉬운 점: 하지만 오랜 기간 유지보수를 하면서 실수 (Regression) 를 줄이는 능력은 여전히 부족했습니다.
    • 대부분의 AI 는 10 번의 수정 중 7~8 번은 실수를 하거나, 기존 기능을 망가뜨리는 '회귀'를 일으켰습니다.
    • 마치 집을 고치다가 벽을 뚫고 전선을 끊어버리는 상황과 비슷합니다.

요약

이 논문은 **"AI 가 코드를 짤 때, '한 번에 잘 만드는 것'보다 '오래 잘 유지되는 것'이 더 중요하다"**고 말합니다.

지금까지 우리는 AI 가 **"단거리 경주 (한 번의 작업)"**를 얼마나 잘 뛰는지 봤다면, 이제부터는 **"마라톤 (오랜 기간의 유지보수)"**을 얼마나 잘 뛰는지 봐야 한다는 것입니다. 아직 AI 는 마라톤을 뛰다가 자주 넘어지지만, 이 새로운 평가 기준 (SWE-CI) 을 통해 AI 가 진짜로 인간 개발자를 대체할 수 있는 '유능한 엔지니어'로 성장할 수 있을지 지켜볼 수 있게 되었습니다.