대규모 언어모델(LLM)이 방대한 코드베이스를 분석할 때 발생하는 컨텍스트 창(context window) 한계와 비효율성 문제를 해결하기 위한 새로운 도구 '크레스포(Crespo)'가 공개되었습니다. 크레스포는 LLM에 원본 소스 코드를 통째로 전달하는 대신, 코드의 구조적 핵심만 추출하여 압축된 XML 설계도(blueprint) 형태로 제공합니다. 이를 통해 LLM이 코드의 전체 아키텍처를 파악하면서도 토큰 사용량을 획기적으로 줄일 수 있습니다.
크레스포는 깃허브(GitHub), 네오빔(Neovim) 등에서 사용하는 '트리시터(Tree-sitter)' 파서를 기반으로 작동합니다. 트리시터는 정규 표현식(regex)이 아닌 실제 언어 문법을 사용하여 코드의 추상 구문 트리(AST)를 정확하게 분석합니다. 이 과정을 통해 임포트(import), 클래스(class), 함수(function), 모듈(module) 간의 연결 등 저장소의 '구조적 DNA'만을 추출하여 LLM이 이해하기 쉬운 XML 형식으로 변환합니다. 현재 파이썬(Python), 자바스크립트(JavaScript), 타입스크립트(TypeScript), 러스트(Rust), 고(Go), 자바(Java), C, C++ 등 10개 언어를 지원하며, 테스트 결과 코드 토큰을 평균 86%까지 절감하는 것으로 나타났습니다. 특히, 민감한 정보 유출을 막기 위해 API 키나 토큰과 같은 비밀(secret) 정보는 자동적으로 제거하는 보안 기능도 갖추고 있습니다.
이러한 접근 방식은 LLM이 복잡한 코드베이스를 더 빠르고 정확하게 이해하도록 도와, 개발 생산성을 크게 향상시킬 잠재력을 가집니다. 기존에는 LLM에 전체 코드를 넣으면 컨텍스트 한계에 부딪히거나, 파일을 하나씩 넣으면 전체 그림을 놓치는 문제가 있었습니다. 크레스포는 이러한 문제들을 해결하며, LLM이 코드 아키텍처를 분석하거나, 온보딩(onboarding) 과정에서 새로운 팀원이 코드베이스를 빠르게 파악하는 데 유용하게 활용될 수 있습니다. 또한, 향후에는 사람이 직접 읽을 수 있는 형태로 코드를 요약해주는 기능도 추가될 예정이어서, 개발자들의 코드 이해를 돕는 강력한 도구가 될 것으로 기대됩니다.