TypeScript Repository Indexing for Code Agent Retrieval
이 논문은 대규모 TypeScript 저장소에서 LSP 기반의 심볼 조회 병목 현상을 해결하기 위해 TypeScript 컴파일러 API 를 기반으로 한 새로운 파서 'abcoder-ts-parser'를 제안하여, UniAST 인덱싱의 효율성과 신뢰성을 크게 향상시켰음을 보여줍니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
🏛️ 1. 배경: AI 비서가 당황하는 이유
최근 '코드 에이전트 (AI 프로그래머)'라는 새로운 도구가 생겼습니다. 개발자가 "이 버그 고쳐줘"라고 하면, AI 는 프로젝트 전체를 뒤져서 필요한 코드를 찾아내고 해결책을 제안합니다.
하지만 문제는 찾아내는 과정입니다.
- 기존 방식 1 (단어 검색): "고양이"라는 단어를 검색하면 '고양이'라는 글자가 들어간 모든 문서를 보여줍니다. 하지만 실제로는 '강아지'에 대한 이야기일 수도 있고, 관련 없는 문서일 수도 있어 AI 가 헷갈립니다.
- 기존 방식 2 (유사도 검색): "이 문서랑 내용이 비슷한 거 찾아줘"라고 하면, 비슷한 느낌의 문서를 줍니다. 하지만 함수 A 가 함수 B 를 부르고, 그 함수가 다시 C 를 부르는 '연결고리' 같은 구조적인 관계는 놓치기 쉽습니다.
🕵️♂️ 2. 기존 문제점: "하나하나 물어보는 비효율"
이 논문에서 다루는 ABCoder라는 도구는 코드를 단순한 텍스트가 아니라, **함수끼리 어떻게 연결되어 있는지 보여주는 '그래프 (지도)'**로 만듭니다.
하지만 기존 ABCoder 가 TypeScript 코드를 분석할 때 겪은 치명적인 문제가 있었습니다.
- 비유: 도서관 사서가 책을 한 권씩 찾아서 "이 책의 저자가 누구야?", "이 책이 참고한 책은 뭐야?"라고 **도서관장 (언어 서버) 에게 하나씩 전화 (RPC 호출)**로 물어보는 상황입니다.
- 문제: 책이 100 권이면 100 번, 100 만 권이면 100 만 번 전화를 해야 합니다. 전화를 거는 시간이 너무 길어져서, 도서관이 커질수록 (대형 프로젝트) 사서가 미쳐버릴 지경이 됩니다.
🚀 3. 새로운 해결책: "abcoder-ts-parser" (전체 지도를 한 번에 보는 눈)
저자들은 이 비효율을 해결하기 위해 TypeScript 컴파일러 API를 직접 활용하는 새로운 파서 (분석기) 를 만들었습니다.
- 새로운 비유: 이제 사서는 도서관장에게 전화하지 않습니다. 대신 도서관 전체의 설계도와 모든 책의 내용, 그리고 책들 사이의 연결 관계를 한눈에 보여주는 거대한 '디지털 지도'를 직접 손에 쥔 상태로 일을 시작합니다.
- 작동 원리:
- 한 번에 읽기: 프로젝트 전체를 메모리에 한 번에 불러옵니다.
- 직접 해석: "이 함수가 저 함수를 부르는구나", "이 타입이 저 인터페이스를 구현하는구나"라고 컴파일러가 가진 모든 정보를 직접 분석합니다.
- 결과: 외부 전화 (RPC) 를 전혀 거치지 않고, 순식간에 완벽한 연결 지도를 그립니다.
📊 4. 성과: 얼마나 빨라졌을까?
논문의 실험 결과를 보면 그 차이가 압도적입니다.
- 테스트 대상: 'Sentry'라는 거대 프로젝트 (코드 123 만 줄, 파일 8,909 개).
- 기존 방식: 10 분 이상 걸릴 것으로 예상되거나, 실제로는 너무 느려서 실용성이 떨어집니다. (비유: 도서관 전체를 돌며 전화로 물어보는 데 12 분 이상 걸림)
- 새로운 방식 (abcoder-ts-parser): 약 12 분 (705 초) 만에 끝냈습니다.
- 더 작은 프로젝트 (Excalidraw, 14 만 줄) 는 단 35 초 만에 끝냈습니다.
- 기존 방식이 16 만 줄짜리 Python 프로젝트를 분석하는 데 10 분 (603 초) 걸렸다면, 새로운 방식은 비슷한 규모의 TypeScript 프로젝트를 10 분의 1 시간도 안 되어 처리했습니다.
💡 5. 결론: 왜 중요한가요?
이 새로운 파서가 만들어낸 지도 (UniAST) 는 AI 비서에게 다음과 같은 혜택을 줍니다.
- 정확한 길 찾기: "이 함수를 수정하면 어떤 다른 함수들이 영향을 받을까?"라고 물었을 때, AI 는 키워드 검색이 아니라 **실제 연결 고리 (호출 체인)**를 따라 정확한 답을 줍니다.
- 빠른 반응: 지도를 만드는 시간이 짧아져서, 개발자가 코드를 바꿀 때마다 AI 가 실시간으로 업데이트된 지도를 보고 일할 수 있습니다.
- 더 똑똑한 AI: AI 가 코드를 조각조각이 아니라 하나의 네트워크로 이해하게 되어, 더 정교한 버그 수정이나 기능 추가가 가능해집니다.
한 줄 요약:
"기존에는 도서관에서 책 하나하나를 찾아보느라 전화를 수만 번 걸느라 지쳤다면, 이제는 도서관 전체의 연결 지도를 한 번에 펼쳐놓고 AI 가 순식간에 필요한 정보를 찾아내게 만든 것입니다."
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.