최근 대규모 언어모델(LLM) 기반의 코드 생성 에이전트들은 놀라운 성능을 보여주지만, 그 결과물이 '블랙박스'처럼 작동한다는 한계가 있었습니다. 즉, 특정 코드 라인이 왜 생성되었는지, 오류 수정 과정에서 코드가 어떻게 진화했는지, 그리고 사후 감사가 불가능하다는 문제가 제기되어 왔습니다. 이러한 불투명성은 특히 실제 서비스 배포 환경에서 AI 생성 코드에 대한 신뢰와 책임성 확보를 어렵게 만들었습니다.
이러한 문제를 해결하기 위해 '트레이스코더(TraceCoder)'라는 새로운 코드 생성 개념이 아카이브(arXiv) 논문을 통해 발표되었습니다. 트레이스코더는 세 가지 핵심 메커니즘을 통해 코드 생성 과정을 설명 가능하고 감사 가능하도록 만듭니다. 첫째, 관계형 스니펫(snippet) 이력 스키마를 통해 각 코드 수정 이벤트마다 벤치마크 참조, 라운드 번호, 실패 텍스트, 그리고 LLM의 설명을 기록하여 전체 이력을 추적할 수 있게 합니다. 둘째, 브라우저 기반 시각화 도구를 제공하여 이 이력을 히트맵(heat-map)과 호버(hover) 주석이 달린 소스 코드로 보여줍니다. 셋째, 경쟁적인 분수 위치 키(position-key) 인덱싱 방식을 사용하여 각 코드 스니펫에 안정적이고 사전 순으로 정렬된 식별자를 할당, 주변 라인에 영향을 주지 않으면서 세밀한 추적을 가능하게 합니다.
연구팀은 트레이스코더를 문자열 처리, 수학 계산, 자료 구조 조작 등 30가지 알고리즘 프로그래밍 작업에 대해 평가했습니다. 그 결과, 코드 스니펫 10개 중 3개에서 추적 가능한 수정 이벤트가 기록되었으며, 이는 제미니 2.0 플래시(Gemini 2.0 Flash)만을 사용했을 때의 21%보다 높은 수치입니다. 세부 사례 연구를 통해 시스템이 특정 벤치마크 실패가 최종 프로그램의 각 라인에 어떻게 영향을 미쳤는지 명확히 설명할 수 있음을 입증했습니다. 이 메커니즘은 자동화된 코드 생성의 내부 '내러티브'를 감사 가능하고 재현 가능하게 만들어, 프로덕션 배포 환경에서 신뢰와 책임성을 확보하는 데 필수적인 특성을 제공합니다.
