목록으로
Service2025.09.21

GitLab Knowledge Graph

요약

GitLab Knowledge Graph (gkg)는 코드 저장소의 구조화되고 쿼리 가능한 표현을 생성하여 AI 기능을 강화하고 개발자 생산성을 향상시키는 것을 목표로 합니다.
️ gkg는 gitlab-code-parser 기반의 Universal Call Graph와 Kuzu Graph Database를 활용하여 여러 프로그래밍 언어를 지원하며 빠르고 복잡한 관계 쿼리를 가능하게 합니다.
이 시스템은 MCP Protocol을 통한 AI 도구 통합과 강력한 CLI, IDE 연동, 웹 UI를 제공하여 Codebase RAG, Code Navigation, Impact Analysis 등 다양한 개발자 유스케이스를 지원합니다.

상세 내용

GitLab Knowledge Graph (gkg)는 코드 리포지토리의 구조화되고 쿼리 가능한 표현을 생성하여 AI 기능과 개발자 생산성을 향상시키도록 설계된 시스템입니다.

핵심 방법론 및 기술 구성 요소:

  • Universal Call Graph 생성 및 파싱: gkg의 핵심은 gitlab-code-parser를 기반으로 한 Universal Call Graph를 생성하는 것입니다. 이는 코드 베이스를 심층적으로 분석하여 함수 호출, 변수 사용, 모듈 간의 의존성 등 복잡한 관계를 그래프 형태로 표현하는 기술입니다. rust, TypeScript, Python, Ruby 등 다양한 프로그래밍 언어를 기본적으로 지원하며, gitlab-code-parser의 확장 가능한 아키텍처 덕분에 새로운 언어도 쉽게 추가할 수 있습니다. 이 과정에서 파서는 소스 코드를 구문 분석(parsing)하여 추상 구문 트리(Abstract Syntax Tree, AST)를 구축하고, 이를 기반으로 코드 요소 간의 관계를 식별하여 그래프 노드(node)와 엣지(edge)로 변환합니다.
  • Kuzu Graph Database를 통한 고속 쿼리: 생성된 코드 그래프 데이터는 Kuzu Graph Database에 저장됩니다. Kuzu는 복잡한 관계 쿼리(complex relationship queries)에 특화되어 구축된 데이터베이스로, 대규모 코드 베이스에서도 종속성 추적, 함수 호출 경로 분석, 아키텍처 탐색 등과 같은 그래프 순회(graph traversal) 및 패턴 매칭(pattern matching) 작업을 lightning-fast 속도로 수행할 수 있도록 최적화되어 있습니다. 이는 코드 베이스의 동적인 분석과 신속한 정보 검색을 가능하게 합니다.
  • Developer-First Design 및 접근성: gkg는 개발자 친화적인(Developer-First) 접근성을 제공합니다. 자동화를 위한 강력한 CLI(Command Line Interface), IDE(Integrated Development Environment) 통합, 그리고 탐색을 위한 시각적인 웹 UI(Web UI)를 지원합니다. 또한, 주요 운영 체제(OS)에서 모두 작동하여 다양한 개발 환경에 쉽게 통합될 수 있습니다.
  • AI-Ready IntegrationMCP Protocol 지원: gkg는 AI 도구와의 긴밀한 통합을 위해 MCP Protocol(Managed Code Protocol)을 지원합니다. 이 프로토콜은 AI 도구가 코드 베이스의 구조화된 표현을 이해하고, 문맥 인식(context-aware) 방식의 코드 제안, 분석, 및 지원을 제공할 수 있도록 표준화된 인터페이스를 제공합니다. 이를 통해 AI 모델은 gkg가 생성한 코드 그래프 데이터를 활용하여 더욱 정교하고 유용한 개발자 지원 기능을 구현할 수 있습니다.
  • 주요 활용 사례(Use Cases):

    * Codebase RAG(Retrieval-Augmented Generation): MCP 통합을 통해 문맥 인식이 가능한 코드 제안(code suggestions) 및 분석을 가능하게 합니다.
    * Code Navigation: 코드 베이스 전체에서 모든 참조(references), 종속성(dependencies), 및 관계(relationships)를 효율적으로 찾아냅니다.
    * Impact Analysis: 변경 사항이 시스템의 다른 부분에 미치는 영향을 미리 파악하여 잠재적 문제를 예측하고 방지합니다.
    * Architecture Visualization: 시스템 구조 및 종속성의 상호작용 가능한(interactive) 그래프를 생성하여 복잡한 아키텍처를 시각적으로 이해하는 데 도움을 줍니다.

    현재 gkg 프로젝트는 Public Beta 단계에 있으며, 핵심 기능은 안정적이고 평가 준비가 완료되었습니다.

    원본 보기
    Web
    Shared by Anonymous