← 최신 논문
💻 computer science

SWE-NFI: Studying and Benchmarking Coding Agents for Non-Functional Improvements

이 논문은 비기능적 개선 사항에 대한 코딩 에이전트를 평가하기 위해 설계된 188개의 실제 작업과 92개의 실행 가능한 규칙으로 구성된 벤치마크인 SWE-NFI를 소개하며, 에이전트들이 높은 기능적 정확성을 달ach하는 반면 동작 보존형 코드 향상을 실행하는 데 있어서는 인간 개발자에 비해 크게 뒤처진다는 점을 밝히고 있다.

원저자: Pengyu Xue, He Yang Yuan, Xin Wang, Junkai Chen, Haonan Zhang, Boyuan Chen, Zishuo Ding, Zhenhao Li, Weiyi Shang

게시일 2026-07-31
📖 3 분 읽기☕ 가벼운 읽기

원저자: Pengyu Xue, He Yang Yuan, Xin Wang, Junkai Chen, Haonan Zhang, Boyuan Chen, Zishuo Ding, Zhenhao Li, Weiyi Shang

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 로봇에게 코드를 쓰는 법을 가르치고 있다고 상상해 보세요. 오랫동안 로봇이 일을 잘하고 있는지 테스트하는 유일한 방법은 "프로그램이 작동하는가?"라고 묻는 것이었습니다. 만약 로봇이 숫자를 더하는 계산기를 제대로 만들었다면, 로봇은 금메달을 받았습니다. 하지만 현실 세계에서 소프트웨어를 작성하는 것은 집을 짓는 것과 같습니다. 지붕에서 물이 새지 않고 문이 잘 열린다고 해서 그 집이 살기에 즐거운 곳이라는 뜻은 아닙니다. 벽 뒤의 배선이 엉망진창이거나, 페인트가 벗겨져 있거나, 전등 스위치를 사용하는 방법이 투명 잉크로 적혀 있을 수도 있습니다. 이것들이 바로 집의 "비기능적"인 부분들입니다. 즉, 얼마나 고치기 쉬운지, 얼마나 안전한지, 그리고 얼마나 보기 좋은가와 같은 것들입니다.

최근에는 "코딩 에이전트"라고 불리는 똑똑한 컴퓨터 프로그램들이 소프트웨어의 기본적인 구조를 만드는 데 매우 능숙해졌습니다. 이들은 버그를 수정하고 새로운 기능을 추가할 수 있습니다. 하지만 아무도 이 에이전트들이 코드를 정리하고, 배선을 정리하고, 기존에 작동하던 것을 망가뜨리지 않으면서 명확한 설명서를 작성하는 것과 같이 지저도 아니고 귀찮지만 매우 중요한 일까지 할 수 있는지는 알지 못했습니다. 이것이 캐나다, 중국, 싱가포르의 대학 연구진이 답하고자 했던 질문입니다. 그들은 이 디지털 조수들이 단순히 기능적인 건축가를 넘어 진정한 소프트웨어 관리자가 될 수 있는지 확인하고 싶었습니다.

이를 알아내기 위해 연구진은 SWE-NFI라는 새로운 테스트를 만들었습니다. 이 테스트를 거대한 자동화된 검사관의 체크리스트라고 생각하면 됩니다. 프로그램이 실행되는지만 확인하는 대신, 이 체크리스트는 코드가 어떻게 보이고 느껴지는지에 대한 92가지의 구체적인 규칙을 가지고 있습니다. 이 규칙들은 다음과 같은 것들을 확인합니다: "이 함수가 무엇을 하는지 명확한 설명을 작성했는가?" (문서화), "프로그램이 충돌하지 않도록 오류를 안전하게 처리했는가?" (오류 처리), "오래되고 녹슨 도구 대신 현대적인 도구를 사용했는가?" (라이브러리 제약 사항).

연구진은 실제 소프트웨어 프로젝트에서 인간이 이미 수정했던 188개의 실제 사례를 사용하여 이 테스트를 구축했습니다. 그들은 코드의 "이전" 버전을 가져와 여러 코딩 에이전트에게 주고, 실제로 하는 일은 바꾸지 않으면서 코드를 더 좋게 만들라고 요청했습니다. 그런 다음 92가지 규칙의 체크리스트를 사용하여 에이전트들을 채점했습니다. 또한 "인간 참조" 점수, 즉 실제 인간 개발자가 동일한 코드 조각을 실제 세상에서 어떻게 개선했는지에 대한 점수도 함께 측정했습니다.

결과는 다소 냉혹한 현실을 보여주었습니다. 가장 뛰어난 코딩 에이전트들은 코드가 여전히 제대로 작동하도록 만드는 데는 꽤 능숙했습니다(기능적 정확도에서 70.0%의 통과율 기록). 하지만 인간이 중요하게 여기는 방식으로 코드를 '더 좋게' 만드는 데 있어서는 고전했습니다. 그들은 거의 모든 카테고리에서 인간 개발자에게 미치지 못했습니다.

가장 큰 격차는 코드의 구조적 무결성과 같은 "로직 패턴(Logic Patterns)"에서 나타났습니다. 인간은 이 영역을 평균 1.5점만큼 개선했지만, 가장 뛰어난 코딩 에이전트는 0.0에서 1.3 사이의 점수만을 기록했습니다. 이는 마치 로봇들이 튼튼한 벽은 세울 수 있지만, 벽돌을 완벽하게 맞추거나 멋진 아치형 입구를 만드는 법은 모르는 것과 같습니다.

연구는 몇 가지 흥미로운 특징들도 발견했습니다:

  • 파일 하나 vs 여러 개: 에이전트들은 단일 파일을 수정하는 데는 괜찮았지만, 여러 파일을 동시에 조정해야 할 때(예를 들어 주방의 배선과 거실의 배선을 동시에 고치는 것과 같이)는 훨씬 더 서툴렀습니다.
  • 비용 대 품질: 연구진은 에이전트가 얼마나 많은 "연료"(컴퓨터 시간과 데이터 토큰)를 사용하는지 확인했습니다. 그들은 더 많은 돈이나 시간을 들인다고 해서 반드시 더 나은 결과가 나오는 것은 아니라는 것을 발견했습니다. 어떤 에이전트는 다른 에이전트보다 100배나 더 많은 자원을 사용했지만, 눈에 띄게 더 나은 코드 개선을 만들어내지는 못했습니다.
  • 일관성: 일단 에이전트가 실제로 작동하는 코드를 작성하고 나면, 그러한 작은 개선을 수행하는 데 있어 꽤 일관성을 보였습니다. 진짜 문제는 코드가 작동하게 만드는 것 그 자체였습니다.

요약하자면, 이 논문은 우리의 코딩 로봇들이 "무엇을(what)" 하는가(작동하게 만드는 것)에는 매우 능숙해지고 있지만, "어떻게(how)" 하는가(유지보수 가능하고, 안전하며, 깔끔하게 만드는 것)에 대해서는 아직 갈 길이 멀다는 것을 시사합니다. 그들은 지시를 따르는 데는 훌륭한 견습생이지만, 작업실을 정리하는 법을 아는 숙련된 장인이 되는 법은 아직 배우지 못했습니다. 연구진은 이 새로운 엄격한 체크리스트를 통해, 다음 세대의 코딩 에이전트들이 단순히 소프트웨어를 구축하는 것을 넘어, 그것을 관리하는 법을 배울 수 있기를 희망하고 있습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →