Code2UML: Agentic LLMs with context engineering for scalable software visualization
본 논문은 다양한 프로젝트 규모와 프로그래밍 언어에 걸쳐 안정적인 성능을 유지하면서 대규모 소스 코드 저장소에서 확장 가능하고 고품질의 자동화된 UML 다이어그램 생성을 가능하게 하는 결정론적 컨텍스트 엔지니어링 계층을 갖춘 에이전트 기반 LLM 시스템인 Code2UML을 소개합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
거대한 책 도서관 (소프트웨어 코드베이스) 이 있다고 상상해 보세요. 그리고 방들이 어떻게 연결되어 있는지, 출구는 어디에 있으며 사람들이 어떻게 이동하는지 보여주는 간단한 지도 (UML 다이어그램) 를 만들고 싶다고 가정해 봅시다.
문제는 도서관이 너무 방대해서 한 명의 전문가 (AI) 에게 전체를 한 번에 설명하려 하면, 그 전문가가 압도당하거나, 사실을 왜곡하기 시작하거나, 중간에 그만두게 된다는 것입니다. 이것이 해당 논문이 다루는 '컨텍스트 제한' 문제입니다.
저자 Code2U는 이 문제를 해결하기 위해 지능적인 AI 어시스턴트 팀을 구축했습니다. 모든 일을 한 거대 AI 에게 맡기는 대신, 5 명의 전문 에이전트로 구성된 계층 구조 (각자 특정 업무를 담당하는 건설 작업대라고 생각하세요) 와 정교한 데이터 압축 시스템을 만들었습니다.
다음은 그들의 시스템이 작동하는 방식을 간단한 개념으로 분해한 것입니다:
1. "컨텍스트 엔지니어링" 필터 (도서관 사서)
AI 팀이 코드를 살펴보기 전에, 특수한 도구가 초고속 도서관 사서처럼 작동합니다.
- 문제: 전체 코드 도서관은 AI 의 '작업 메모리' (컨텍스트 윈도우) 에 담기에는 너무 큽니다.
- 해결책: 이 도구는 무엇을 유지할지 결정하기 위해 AI 를 사용하지 않습니다. 대신, 엄격하게 미리 작성된 규칙 (결정적 논리) 을 사용하여 코드를 빠르게 스캔하고, 그리고자 하는 특정 지도를 위해 **맞춤형 "스냅샷"**을 생성합니다.
- 비유: 도시 지하철 시스템의 지도가 필요하다고 상상해 보세요. 사서는 AI 에게 "무엇이 중요한가요?"라고 묻지 않습니다. 대신 사서는 모든 거리 이름, 건물 주소, 공원 세부 사항을 즉시 버리고 지하철 역과 선로만 유지합니다. 이 스냅샷은 매우 작아 AI 의 메모리에 완벽하게 들어맞으며, 어떤 AI 두뇌의 힘도 필요 없이 밀리초 단위로 생성됩니다.
2. 5 명 에이전트 팀
도서관 사서가 올바른 스냅샷을 만들면, 5 명의 전문 AI 에이전트 팀이 작업을 이어받습니다. 그들은 잘 기름칠 된 기계처럼 협력하여 작동합니다:
- 기획자 (건축가): 스냅샷을 보고 "좋습니다, 이 큰 프로젝트를 더 작은 조각으로 나누어야 합니다. 각 부서별로 세 개의 별도 지도를 만들어 봅시다"라고 결정합니다.
- 분석가 (탐정): 각 조각에 대해 이 에이전트는 특정 파일을 읽어서 주요 상호작용 (누가 누구와 대화하는지) 을 요약합니다. 잡음은 무시하고 신호에 집중합니다.
- 다이어그램 에이전트 (화가): 이 에이전트는 요약본을 받아 실제로 지도를 그립니다 (다이어그램을 위한 코드를 작성합니다).
- 정정자 (편집자): 화가가 지도 범례의 오타와 같은 작은 실수를 할 수 있습니다. 이 에이전트는 완성된 지도를 읽고 규칙과 대조하여 즉시 오류를 수정합니다.
- 의존성 분석가 (공급망 관리자): 이 에이전트는 주요 코드 밖을 살펴 프로젝트가 사용하는 외부 도구나 라이브러리를 확인하여, 지도에 이러한 연결도 포함되도록 보장합니다.
3. 결과: 그들은 무엇을 발견했나요?
팀은 **네 가지 언어 (Java, Python, JavaScript, PHP)**로 작성된 12 개의 다른 오픈소스 소프트웨어 프로젝트 (작은 앱부터 거대 시스템까지) 에서 이 시스템을 테스트했습니다. 그들은 7 가지 유형의 지도 (클래스 다이어그램, 흐름도, 배포 지도 등) 를 생성해 보았습니다.
다음은 발생한 일입니다:
- 높은 정확도: 지도는 거의 항상 문법적으로 정확했습니다 (약 **91.5%**가 즉시 완벽했습니다. "컴포넌트" 및 "배포" 지도와 같은 일부 유형의 경우 **100%**였습니다).
- 지능적인 요약: 시스템은 지도를 읽을 수 없게 만드는 모든 단일 코드 조각을 나열하려고 시도하지 않았습니다. 대신 가장 중요한 부분에 집중했습니다. 코드 엔티티의 약 **31%**를 포착했지만, 그중에는 올바른 것들만 포함되었습니다.
- 일관성: 30 줄의 코드로 된 작은 프로젝트에서나 4,500 줄 이상의 코드로 된 거대 프로젝트에서나 동일하게 잘 작동했습니다. 프로젝트가 커질수록 품질이 떨어지지 않았습니다.
- 할루시네이션 부재: 지도는 코드 부분 간의 가짜 연결을 거의 만들어내지 않았습니다. 지도가 두 가지가 연결되어 있다고 말했다면, 실제로 연결되어 있었습니다.
4. 이것이 중요한 이유
이 논문은 이전의 AI 활용 시도가 실패한 이유는 전체 코드베이스를 한 번에 AI 에게 공급하려 했기 때문이라고 주장합니다.
- 구식 방식: "이 전체 도서관을 가져왔으니 지도를 그려 주세요." (결과: AI 는 혼란스러워하고 실수를 저지릅니다).
- Code2U 방식: "이것은 이 특정 지도에 필요한 것만 완벽하게 필터링한 작은 스냅샷입니다. 이제 그려 주세요." (결과: 깔끔하고 정확하며 유효한 지도).
요약
이 논문은 소프트웨어 설계도를 자동화하는 시스템을 소개합니다. 이 시스템은 "만능 천재"가 되려 하지 않고, 먼저 데이터를 지능적으로 압축한 다음 협력하여 정확하고 유효한 다이어그램을 그리는 전문 팀으로 작동함으로써 성공합니다. 이는 AI 가 압도당하지 않고도 거대한 코드베이스에 대한 고품질 소프트웨어 지도를 생성할 수 있음을 증명합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.