CodeBoarding/CodeBoarding

Interactive architecture diagrams for codebases

CodeBoarding – AI 기반 정적 분석 + 아키텍처 매핑

기능

  • 언어 서버 기반 정적 분석으로 코드베이스를 스캔하고, 심볼과 관계를 추출하여 컴포넌트 (고수준 모듈, 서비스 등)로 그룹화합니다.
  • 대표 스니펫을 구성 가능한 LLM(OpenAI, Anthropic, Ollama 등)에 전송하여 각 컴포넌트에 대한 짧고 읽기 쉬운 설명을 생성합니다.
  • 컴포넌트 계층, 의존성 그래프, 소스 위치, LLM 생성 설명이 포함된 analysis.json을 출력합니다.
  • JSON은 CodeBoarding 웹 UI, VS Code 확장에서 시각화하거나 Mermaid 다이어그램과 함께 문서(Markdown, HTML, MDX, reStructuredText)로 변환할 수 있습니다.
  • GitHub Action이 모든 풀 리퀘스트에서 분석을 실행하고 변경된 컴포넌트와 의존성을 강조하는 맵을 게시하여, 리뷰어가 줄 단위 변경뿐만 아니라 diff의 영향을 확인할 수 있게 합니다.

중요성

  • 큰 풀 리퀘스트는 시스템의 여러 논리적 부분에 걸친 많은 파일을 수정하는 경우가 많습니다. 원시 diff로 아키텍처 영향을 이해하는 것은 어렵습니다. CodeBoarding은 그 diff를 간결한 컴포넌트 수준 보기로 변환하여 새로운 의존성, 잠재적 회귀, 숨은 결합을 발견하기 쉽게 만듭니다.
  • LLM을 사용하여 컴포넌트 이름과 설명을 생성하므로, 개발자가 수동으로 문서를 작성하지 않아도 생성된 맵이 최신 상태로 읽기 쉽게 유지됩니다.
  • 이 도구는 많은 인기 언어(Python, TypeScript/JavaScript, Java, Kotlin, Go, PHP, Rust, C#)를 지원하며 모든 CI 파이프라인에 연결할 수 있습니다.

시작하기

  1. CLI 설치 – 권장 방법은 pipx install codeboarding --python python3.12 (또는 virtualenv에서 pip 사용)입니다. codeboarding-setup을 실행하여 언어 서버 바이너리를 다운로드합니다.
  2. LLM 공급자 구성 – OpenAI, Anthropic, Ollama 등의 API 키로 ~/.codeboarding/config.toml을 편집(또는 환경 변수 설정)하고 선택적으로 agent_model을 설정합니다.
  3. 분석 실행 – 예: codeboarding full --local /path/to/repo. 출력은 repo/.codeboarding/analysis.json에 생성됩니다.
  4. 결과 탐색 – 웹 플랫폼(https://app.codeboarding.org)을 열어 생성된 JSON을 로드하거나 VS Code 확장을 사용하여 편집기에서 직접 컴포넌트 맵을 탐색합니다.
  5. 선택적 렌더링 – --render md(또는 html, mdx, rst)를 추가하여 문서 파일을 자동 생성합니다.

일반적인 워크플로우

  • 전체 분석 – 전체 리포지토리를 스캔하고 컴포넌트 계층을 구축하여 analysis.json을 작성합니다.
  • 증분 분석 – 베이스라인이 존재한 후 변경된 파일에 대해서만 실행하고 컴포넌트 수준 변경의 diff를 생성합니다.
  • 부분 분석 – 작은 영역만 업데이트해야 할 때 단일 컴포넌트(숫자 ID로 식별)를 다시 분석합니다.
  • CI 통합 – 워크플로우에 CodeBoarding GitHub Action을 추가합니다. 각 PR에서 분석을 실행하고 베이스 브랜치와 비교하여 새로 추가/제거된 의존성을 보여주는 시각적 맵을 게시합니다.

주요 개념 및 파일

  • analysis.json – 컴포넌트 트리, 관계, LLM 생성 설명, 소스 참조를 포함한 핵심 산출물.
  • diagram_generation – JSON을 Markdown/HTML 출력용 Mermaid 다이어그램으로 변환합니다.
  • LLM_Planning_and_Analysis_Agents – 구성된 모델 공급자와 통신하여 컴포넌트 이름과 요약을 만드는 부분.
  • Static_Analysis_Engine – 언어 서버 쿼리를 조정하고 심볼을 수집하며 컴포넌트로 클러스터링하기 전에 원시 그래프를 구축합니다.
  • CODEBOARDING_MAX_CONCURRENT_ENGINES와 같은 환경 변수로 병렬 실행되는 언어 서버 수를 조정할 수 있습니다. CODEBOARDING_LSP_REQUEST_TIMEOUT는 요청별 시간 제한을 제어합니다.

적용 분야

  • 로컬 개발 – CLI를 실행하여 최신 아키텍처 문서를 생성합니다.
  • 코드 리뷰 – 웹 UI 또는 VS Code 보기를 사용하여 PR이 건드리는 고수준 부분을 한눈에 확인합니다.
  • 문서 파이프라인 – 분석에서 Markdown/HTML 문서를 자동 렌더링합니다.
  • 팀 온보딩 – 새 멤버가 모든 파일을 읽지 않고 리포지토리 아키텍처를 탐색할 수 있습니다.

리소스


위의 모든 세부 사항은 리포지토리의 README에서 직접 가져온 것이며 추가 기능은 추론되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch