← 최신 논문
💻 computer science

Specification-first convergence with an AI coding agent: a case study of dismantling a core architectural invariant across 189 files in a 717k-line codebase with no test oracle and no human code review

이 논문은 인간의 코드 리뷰나 사전 기존 테스트 오라클 없이 명세 우선 프로토콜 하에 작동하는 AI 코딩 에이전트가, 명세를 반복적으로 개선하고 배포 전 201개의 결함을 수정함으로써 3일 만에 717k 라인의 프로덕션 TypeScript 코드베이스 내 189개 파일에 걸친 핵심 아키텍처 불변성을 성공적으로 해체했음을 보여주는 사례 연구를 제시한다.

원저자: Joel Abenhaim

게시일 2026-08-14
📖 4 분 읽기☕ 가벼운 읽기

원저자: Joel Abenhaim

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

당신이 초지능 로봇에게 집을 짓는 법을 가르치고 있다고 상상해 보십시오. 보통 이 로봇은 벽돌 한 장을 놓거나 벽 하나를 칠하는 일에는 능숙합니다. 하지만 이미 사람이 살고 있는 집의 기초 전체를 재설계하라고 요청하면 혼란에 빠지곤 합니다. 실수로 하중을 견디는 벽을 무너뜨리거나, 주방이 식당과 연결되어 있어야 한다는 사실을 잊어버릴 수도 있습니다. 컴퓨터 과학의 세계에서 이것은 거대한 코드베이스를 "리팩터링(refactoring)"하는 것이라고 불립니다. 현재 연구자들이 던지는 핵심적인 질문은 이것입니다: 인공지능 에이전트가 인간 상사가 모든 줄의 코드를 일일이 확인하지 않고도, 이 거대하고 위험한 작업을 스스로 해낼 수 있을 것인가?

이 도전을 이해하기 위해, 컴퓨터 프로그램을 거대하고 정교한 시계 장치라고 생각해 보십시오. 그 내부에는 "불변량(invariants)"이라는 것들이 있습니다. 이것들은 "메인 스프링은 항상 감겨 있어야 한다"라거나 "시계 바늘은 절대로 뒤로 돌아가서는 안 된다"와 같이 톱니바퀴가 돌아가게 만드는 깨뜨릴 수 없는 규칙들입니다. 대부분의 AI 코딩 도구들은 나사 하나가 풀린 것을 고치는 데는 뛰어나지만, 시간 측정 기능을 망가뜨리지 않고 시계 전체의 배선을 다시 하는 데는 서툰 견습생와 같습니다. 그들은 대개 인간이 옆에서 지켜보며 "잠깐, 그렇게 하면 안 돼!"라고 말해주기를 필요로 합니다. 하지만 인간은 지칠 수 있고, 거대한 시계의 전체 지도를 한꺼번에 머릿속에 담아둘 수도 없습니다. 이 논문은 새로운 작업 방식을 탐구합니다. 로봇이 작업을 마친 후에 검토하는 대신, 로봇이 단 하나의 톱니바퀴에도 손을 대기 전에 완벽하고 상세한 '지침서'를 먼저 작성하도록 강제하는 것입니다. 그러고 나서 로봇이 그 지침서와 자신의 작업물을 대조하며, 지침서와 기계가 완벽하게 일치할 때까지 반복해서 스스로를 점검하게 합니다.

"고스트(Ghost)" 패널의 이야기

이 논문은 단 하나의 AI 에이전트가 거대한 소프트웨어 프로그램에 대해 "마술"을 부리도록 요청받은 특정하고 중대한 실험의 이야기를 다룹니다. 그 프로그램은 AI 코딩 어시스턴트 역할을 하는 717,725줄짜리 애플리케이션이었습니다(거의 72만 페이지의 지침이 담긴 도서관을 상상해 보십시오). 과제는 이 소프트웨어가 첫날부터 지켜온 근본적인 규칙 하나를 깨뜨리는 것이었습니다. 바로 "AI의 작업 창을 닫으면 AI는 생각을 멈춰야 한다"라는 규칙입니다.

목표는 이 규칙을 변경하여, 창을 닫더라도 AI가 배경에서 마치 유령처럼 계속 작동하게 만드는 것이었습니다. 그리고 창을 다시 열었을 때, AI가 단 한 단어도 잃어버리거나 중복되지 않고 대화를 정확히 이어서 진행할 수 있도록 하는 것이었습니다. 이 논문의 저자인 인간 개발자는 이것이 너무 복잡하고 위험해서, 유일하게 안전한 방법은 기존 코드를 모두 버리고 처음부터 다시 쓰는 것뿐이라고 믿었습니다.

"명세 우선(Specification-First)" 프로토콜

모든 것을 새로 쓰는 대신, 저자는 "명세 우선 수렴(Specification-First Convergence)"이라 불리는 방법을 사용했습니다. 이것은 매우 엄격한 심판이 있는 "전화기 놀이(Telephone game)"와 같지만, 그 심판은 바로 AI 자신입니다.

  1. 계획: 인간은 AI에게 평이한 영어로 간단한 요청을 전달했습니다: "창이 닫혀 있을 때도 AI가 계속 작동하게 만드세요."
  2. 청사진: AI는 즉시 코딩을 시작하지 않았습니다. 대신, 아주 작은 세부 사항까지 포함하여 어떻게 변화가 일어날지에 대한 방대하고 공식적인 55페이지 분량의 "명세서(specification)"를 작성했습니다.
  3. 감사(정제): 여기서 마법이 일어났습니다. AI는 자신의 청사진을 실제 존재하는 기존 코드와 14번 대조하도록 요청받았습니다. 각 라운드마다 AI는 자신의 계획에서 오류를 찾아냈습니다. "아, 배경 프로세스를 멈추기 위한 새로운 버튼이 필요하다는 걸 깜빡했네,"라거나 "창이 닫히는 동안 AI가 생각 중일 때 어떤 일이 일어나는지 고려하지 못했어"와 같은 식입니다. AI는 단 한 줄의 새 코드를 쓰기도 전에 약 85개의 오류를 수정하며 청사진을 14번 다시 썼습니다.
  4. 구축: 청사진이 "동결(frozen)"되었을 때(즉, 완벽하여 더 이상 변하지 않을 때), AI는 코딩을 시작했습니다. AI는 단순히 파일들을 작성한 것이 아니라, 189개의 서로 다른 파일에 대한 패치(작은 업데이트)를 생성했습니다.
  5. 이중 점검(검증): 이 부분이 가장 결정적이었습니다. AI는 자신의 새로운 코드를 읽고 동결된 청사진과 비교하도록 요청받았으며, 이를 17번 수행했습니다. AI는 116개의 추가 오류—미세한 구조적 결함이나 논리적 구멍—를 찾아내어 수정했습니다. AI는 두 번 연속으로 오류가 발견되지 않을 때까지 이 과정을 반복했습니다.

결과: 유령이 되어 나타나지 않는 결과물

전체 과정은 3일이 걸렸고, 컴퓨터 처리 비용으로 2,430달러가 들었습니다. 결과는 어떠했을까요? AI는 인간이 생성된 코드를 단 한 번도 들여다보지 않은 채, 189개 파일에 걸쳐 소프트웨어의 핵심 규칙을 성공적으로 해체했습니다.

마침 finally 인간이 프로그램을 처음 실행했을 때, 그것은 완벽하게 작동했습니다. 창을 닫아도 AI가 배경에서 계속 작업하는 것을 볼 수 있었고, 창을 다시 열면 단 한 단어의 유실이나 중복 없이 대화가 즉시 재개되었습니다. 소프트웨어는 청사진이 약속한 대로 정확하게 동작했습니다. 저자는 코드가 매우 깔끔해서, 나중에 작은 인터페이스 수정이 필요했을 때 단 하나의 파일만 변경하면 되었다는 점을 언급하며, AI가 구조를 체계적으로 유지하는 일을 잘 해냈음을 시사했습니다.

의미 (그리고 한계)

이 논문은 매우 어렵고 위험이 큰 소프트웨어 변경을 위해, 우리가 모든 실수를 잡아내기 위해 인간 검토자에게 의존할 필요가 없을지도 모른다는 점을 시사합니다. 대신, AI가 자신의 계획과 자신의 코드를 고정된 표준에 맞추어 반복적으로 엄격하게 점검하고 스스로를 감사하게 함으로써 완벽함에 수렴하게 할 수 있습니다.

하지만 이 논문은 매우 신중하게 자신의 주장을 펼칩니다. 이것은 단 하나의 특정 작업에 대한 하나의 특정 코드베이스에서의 실험이었음을 인정합니다. 이것이 모든 AI나 모든 유형의 소프트웨어 문제에 작동할 것이라는 증거는 아닙니다. 또한 코드가 비공개이기 때문에, 다른 누구도 동일한 실험을 실행하여 같은 결과를 얻을 수 있는지 확인할 수 없다고 명시합니다. 그러나 개념 증명으로서, 이 논문은 AI가 세밀하게 계획하고 스스로를 반복적으로 감사하도록 강제될 때, 인간이 전면적인 재작성 없이는 건드리기 너무 위험하다고 생각하는 거대 소프트웨어 시스템에 대해 "외과 수술적"인 작업을 수행할 수 있음을 보여줍니다.

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

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

Digest 사용해 보기 →