← 최신 논문
🤖 AI

TraceCoder: A Trace-Driven Multi-Agent Framework for Automated Debugging of LLM-Generated Code

TraceCoder는 미세한 런타임 트레이스를 인과 분석에 활용하고, 반복적인 실패를 방지하기 위한 역사적 교훈 학습 메커니즘과 반복적인 개선을 보장하기 위한 롤백 전략을 활용함으로써, 기존 베이스라인 대비 정확도와 비용 효율성 측면에서 상당한 이득을 달성하며 LLM이 생성한 코드의 자동 디버깅을 강화하는 트레이스 기반 멀티 에이전트 프레임워크이다.

원저자: Jiangping Huang, Wenguang Ye, Weisong Sun, Jian Zhang, Mingyue Zhang, Yang Liu

게시일 2026-02-09
📖 3 분 읽기☕ 가벼운 읽기

원저자: Jiangping Huang, Wenguang Ye, Weisong Sun, Jian Zhang, Mingyue Zhang, Yang Liu

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

매우 유능하지만 가끔은 혼란에 빠지는 로봇에게 코드를 작성해 달라고 요청한다고 상상해 보세요. 때때로 로봇은 정답을 맞히기도 합니다. 하지만 특히 까다로운 작업의 경우, 겉보기에는 그럴싸해 보이지만 실제로는 실패를 일으키는 숨겨진 미세한 버그를 가진 코드를 작성하곤 합니다.

현재의 버그 수정 방식은 마치 학생에게 "틀렸어"라고만 말하고 빈 종이를 건네주며 다시 해보라고 하는 선생님과 같습니다. 로봇은 추측하고, 실패하고, 다시 "틀렸다"는 말을 듣고, 똑같은 틀린 것을 계속해서 반복하며 추측합니다. 이는 좌절의 루프에 갇힌 상태입니다.

TraceCoder는 이러한 순환을 끊기 위해 설계된 새로운 시스템입니다. 이것을 단일 로봇이 아니라, 미스터리를 풀기 위해 협력하는 세 명의 전문 탐정 팀, 그리고 스마트 노트안전 그물이라고 생각해보세요.

이 팀이 어떻게 작동하는지 쉬운 비유를 통해 설명하겠습니다.

1. 탐정 팀 (멀티 에이전트 프레임워크)

맹목적으로 추측하는 하나의 로봇 대신, TraceCoder는 업무를 세 가지 전문적인 역할로 나눕니다.

  • 계측 에이전트 (The "Spy" - 스파이):
    코드가 검은 상자(Black Box)라고 상상해 보세요. 스파이는 단순히 상자가 고장 나기를 기다리는 것이 아닙니다. 스파이는 코드가 실행되는 동안 그 내부부에 아주 작은 카메라와 마이크를 몰래 설치합니다. 이 "카메라"(진단 프로브)는 비행기의 블랙박스처럼 코드가 단계별로 정확히 무엇을 하고 있는지 기록합니다. 이를 통해 팀은 단순히 최종적인 충돌(Crash)만을 보는 것이 아니라, 내부에서 일어나는 혼란을 명확하게 볼 수 있습니다.

  • 분석 에이전트 (The "Sherlock Holmes" - 셜록 홈즈):
    이 에이전트는 스파이가 찍은 영상을 살펴봅니다. 단순히 "실패했다"라고 보는 것이 아니라, 실패했는지를 봅니다. "아, 여기서 코드가 0으로 나누려고 했구나" 또는 "숫자 0을 양수로 착각했구나"와 같이 파악합니다. 결정적으로, 이 에이전트는 똑같은 실수를 두 번 반복하지 않기 위해 스마트 노트(아래 참조)를 확인합니다. 이 에이전트는 문제의 근본 원인을 찾아냅니다.

  • 수정 에이전트 (The "Mechanic" - 정비사):
    분석 에이전트가 "문제가 여기 있고, 해결 계획은 이렇습니다"라고 말하면, 정비사가 작업을 시작합니다. 정비사는 계획에 맞춰 코드를 신중하게 편집합니다. 단순히 추측하는 것이 아니라, 탐정 팀이 만든 구체적인 청사진을 따릅니다.

2. 스마트 노트 (역사적 교훈 학습 메커니즘)

현재 AI의 가장 큰 문제 중 하나는 기억력이 짧다는 것입니다. 만약 버그를 고치려다 실패하면, AI는 왜 실패했는지 잊어버리고 똑같은 틀린 해결책을 다시 시도하곤 합니다.

TraceCoder에는 스마트 노트가 있습니다. 팀이 무언가를 고치려다 실패할 때마다 다음과 같은 내용을 기록합니다:

  • 무엇을 시도했는가.
  • 왜 작동하지 않았는가.
  • 실패로부터 무엇을 배웠는가.

팀이 새로운 수정을 시도하기 전에, 그들은 노트를 읽습니다. 이를 통해 똑같은 "실패의 루프"에 빠지는 것을 방지하고 과거의 실수를 반복하지 않도록 돕습니다. 이는 마치 학생이 예전 시험지를 복습하여 똑같은 문제를 다시 틀리지 않도록 하는 것과 같습니다.

3. 안전 그물 (롤백 메커니즘)

때때로 수정 시도가 상황을 더 악화시킬 수도 있습니다. 예를 들어, 정비사가 한 버그는 고쳤지만 실수로 잘 작동하던 다른 부분을 망가뜨릴 수도 있습니다. 이를 "성능 저하(Performance Degradation)"라고 합니다.

TraceCoder에는 안전 그물이 있습니다. 이 시스템은 "지금까지의 최선 버전"을 지속적으로 보관합니다. 만약 새로운 시도가 코드를 더 나쁘게 만들거나 개선되지 않는다면, 시스템은 즉시 "실행 취소"를 눌러 마지막 정상 버전으로 되돌립니다. 이를 통해 팀이 하락 곡선에 갇히지 않도록 보장하며, 항상 시작했던 지점보다 최소한 나은 방향을 유지하도록 합니다.

결과: 왜 중요한가

이 논문은 이 시스템을 여러 가지 어려운 코딩 과제에 테스트했습니다. 연구 결과는 다음과 같습니다.

  • 훨씬 더 정확합니다: TraceCoder는 기존 방식들보다 훨씬 더 많은 버그를 수정했습니다. 일부 어려운 테스트에서는 기존의 가장 우수한 도구들보다 성공률을 34% 이상 높였습니다.
  • "실패의 루프"를 멈춥니다: 스파이(내부를 들여다보는 역할)와 노트(과거를 기억하는 역할)를 사용하여, 다른 시스템들을 가두는 반복적인 추측을 피합니다.
  • 복잡한 로직을 처리합니다: 이 시스템은 최종 에러 메시지만 봐서는 찾아내기 어려운 미세한 로직 오류(예: 0을 양수로 생각하는 것)를 해결하는 데 특히 뛰어납니다.

요약하자면: TraceCoder는 "추측하고 확인하기(Guess and Check)"에서 "관찰하고, 배우고, 고치기(Observe, Learn, and Fix)"로 게임의 판도를 바꿉니다. AI에게 자신의 코드 내부를 볼 수 있는 방법, 과거의 실수를 기억하는 방법, 그리고 퇴보를 막기 위한 안전 그물을 제공함으로써, 복잡한 문제를 디버깅하는 인간 전문가처럼 행동하게 만듭니다.

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

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

Digest 사용해 보기 →