TRENDSHIFT #1 딥다이브 · 2026-03-23 분석

Understand-Anything 딥다이브
— 코드베이스를 지식그래프로 시각화하는 Claude Code 플러그인

새 프로젝트 코드를 처음 열면 어디서부터 읽어야 할지 막막하죠? Understand-Anything다수의 AI 에이전트(9개+)가 코드베이스를 자동 스캔해서 파일·함수·클래스의 의존관계를 인터랙티브 그래프로 보여주는 Claude Code 플러그인입니다. (저장소: Egonex-AI/Understand-Anything · ⭐51.6k · TypeScript · MIT)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 하드웨어 / 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

Understand-Anything이 정확히 무엇을 하는가

Understand-Anything코드베이스를 LLM + 정적분석으로 스캔하여 인터랙티브 지식그래프(Knowledge Graph) 대시보드로 시각화해주는 Claude Code 플러그인입니다. 코드의 파일·함수·클래스·의존성 관계를 자동 추출하고, 탐색 가능한 React Flow 기반 그래프로 보여주며, 자연어로 질문하거나 변경 영향도를 분석할 수 있습니다.

한 컷 비유

"X레이 안경으로 코드베이스 내부 지도를 한눈에 보는 것"

낯선 코드베이스는 처음에 미로처럼 느껴집니다. 어느 파일이 무엇을 하고, 어디서 어디를 호출하는지 파악하는 데 며칠이 걸리기도 하죠. Understand-Anything은 AI가 자동으로 지도를 그려줍니다.

노드(파일/함수/클래스)와 엣지(의존관계)로 이루어진 그래프가 뜨고, 클릭하면 상세 설명이 나타납니다. "이 함수가 어디서 호출되나요?"를 자연어로 물어볼 수도 있습니다.

2왜 주목받는가

트렌딩 이유와 경쟁 대비 장점
기존 방식의 한계
코드 이해에 드는 숨겨진 비용

Sourcegraph 같은 도구는 셀프호스팅이 필요하고, 수동 draw.io 문서는 코드가 바뀌면 즉시 낡습니다. AI 어시스턴트에게 물어봐도 전체 코드베이스 컨텍스트 없이는 부정확한 답을 줍니다.

Understand-Anything의 해법
CLI 한 줄 + 자동 증분 업데이트

슬래시 커맨드 하나면 다수의 AI 에이전트(9개+)가 분업하여 코드베이스를 분석하고, 변경된 파일만 재분석하는 증분 방식으로 대규모 프로젝트에서도 빠릅니다. 비개발자(PM, 디자이너)도 코드 구조를 파악할 수 있습니다.

경쟁 도구 대비 위치

비교 대상Understand-Anything 차별점
GitHub Copilot 코드 이해그래프 시각화 + 아키텍처 레이어 자동 분류
Sourcegraph셀프호스팅 불필요, CLI 한 줄로 실행
CodeScene무료 오픈소스, LLM 기반 자연어 설명
수동 문서화 (draw.io 등)코드 변경 시 자동 증분 업데이트

멀티플랫폼 지원: Claude Code뿐 아니라 Codex, OpenCode, Cursor, OpenClaw, Antigravity 등 8개+ 코딩 에이전트 플랫폼에서 동작합니다. 핵심 차별화 포인트 4가지: 멀티에이전트 파이프라인, 증분 분석, Diff 영향 분석, 12가지 프로그래밍 패턴 설명.

3기술 스택 전체 지도

백엔드 코어 · 프론트엔드 대시보드 · 인프라

백엔드 / 코어 엔진 (packages/core)

기술용도버전
TypeScript전체 프로젝트 언어5.7+
Zod지식그래프 스키마 검증 (런타임 타입 안전성)
web-tree-sitter다언어 정적 분석 (AST 파싱), WASM 기반
Fuse.js퍼지 검색 (fuzzy search)
Dagre그래프 레이아웃 자동 계산
Vitest단위 테스트 프레임워크3.1+

프론트엔드 / 대시보드 (packages/dashboard)

기술용도
React 19UI 프레임워크
Vite빌드 도구 + 개발 서버
React Flow노드/엣지 기반 인터랙티브 그래프 시각화
Zustand경량 상태 관리 (Redux 대체)
TailwindCSS v4유틸리티 기반 스타일링

인프라 / 빌드 시스템

기술용도
pnpm패키지 매니저 (v10+, 모노레포 워크스페이스)
Node.js 22+런타임 (v24에서 테스트됨)
GitHub ActionsCI/CD

4아키텍처 심화 분석

멀티에이전트 파이프라인과 핵심 설계 패턴

시스템 구조도

┌─────────────────────────────────────────────────────────┐ │ Claude Code CLI │ │ /understand /understand-chat /understand-diff ... │ └────────┬────────────────────────────────────────────────┘ │ 슬래시 커맨드 트리거 ▼ ┌─────────────────────────────────────────────────────────┐ │ Skills Layer (skills/) │ │ understand / understand-chat / understand-diff │ │ understand-explain / understand-dashboard │ └────────┬────────────────────────────────────────────────┘ │ 에이전트 오케스트레이션 ▼ ┌─────────────────────────────────────────────────────────┐ │ Multi-Agent Pipeline (agents/) │ │ │ │ project-scanner ──▶ file-analyzer(x3 병렬) │ │ │ │ │ ┌──────────┴──────────┐ │ │ ▼ ▼ │ │ architecture-analyzer tour-builder │ │ │ │ │ ▼ │ │ graph-reviewer (최종 검증/보정) │ └────────┬────────────────────────────────────────────────┘ │ knowledge-graph.json ▼ ┌─────────────────────────────────────────────────────────┐ │ Core Engine (packages/core) │ │ schema(Zod) / analyzer(graph-builder, llm, layer) │ │ search(Fuse.js + 임베딩) / persist(JSON 저장) │ └────────┬────────────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ Dashboard (packages/dashboard) │ │ React Flow Graph (75%) + Sidebar(360px) │ │ NodeInfo / LearnPanel / CodeViewer / PersonaSelector │ └─────────────────────────────────────────────────────────┘

패턴 1 — 멀티에이전트 파이프라인

에이전트들이 순차+병렬로 협업합니다. 각 에이전트는 마크다운 프롬프트(.md)로 역할이 정의되어 있고, 중간 결과를 디스크에 기록하여 컨텍스트 윈도우 오염을 방지합니다.

모델 계층화 전략
Sonnet vs Opus 사용 분기
단순 파일 분석 등 경량 태스크는 Sonnet, 복잡한 아키텍처 분석은 Opus를 사용합니다. 비용과 품질의 균형을 맞추는 실전적 패턴입니다.

패턴 2 — 지식그래프 스키마 (Zod 기반)

// 5개 도메인으로 분류된 18가지 관계 타입
Structural: "imports" | "exports" | "contains" | "inherits" | "implements"
Behavioral: "calls" | "subscribes" | "publishes" | "middleware"
Data flow:  "reads_from" | "writes_to" | "transforms" | "validates"
Dependency: "depends_on" | "tested_by" | "configures"
Semantic:   "related" | "similar_to"

// 노드 타입
type NodeKind = "file" | "function" | "class" | "module" | "concept"
// 엣지에는 방향성 + 가중치(0~1)가 포함

패턴 3 — 증분 분석 (Staleness Detection)

staleness.ts가 파일 변경을 감지하여 변경된 파일만 재분석합니다. Git 커밋 해시를 메타데이터에 기록하여 이전 분석 시점과 비교합니다.

패턴 4 — 컨텍스트 빌더 파이프라인

// context-builder.ts 흐름
사용자 질문
  → SearchEngine.search(query)        // Fuse.js 퍼지 매칭
  → 1-hop 이웃 노드 확장 (엣지 탐색)  // 관련 컨텍스트 확보
  → 최대 15개 노드 제한               // 토큰 절약
  → formatContextForPrompt()          // 마크다운 형식으로 변환
  → LLM에 전달

패턴 5 — 아키텍처 레이어 자동 분류

레이어색상예시
API빨강routes/, controllers/, endpoints
Service파랑services/, handlers/, middleware
Data초록models/, schemas/, repositories
UI보라components/, pages/, views
Utility회색utils/, helpers/, lib

5디렉토리 구조 해부

핵심 디렉토리와 파일 역할
Understand-Anything/ ├── .claude-plugin/ # Claude Code 플러그인 매니페스트 ├── .copilot-plugin/ # Copilot 플랫폼 통합 ├── .cursor-plugin/ # Cursor IDE 플러그인 설정 │ ├── understand-anything-plugin/ # 메인 플러그인 소스 │ ├── agents/ │ │ └── knowledge-graph-guide.md │ │ │ ├── skills/ │ │ ├── understand/ # /understand — 코드베이스 전체 분석 │ │ ├── understand-chat/ # /understand-chat — 자연어 질의 │ │ ├── understand-dashboard/ # /understand-dashboard — 대시보드 실행 │ │ ├── understand-diff/ # /understand-diff — 변경 영향 분석 │ │ ├── understand-explain/ # /understand-explain — 모듈 심층 분석 │ │ ├── understand-onboard/ # /understand-onboard — 온보딩 가이드 │ │ ├── understand-domain/ # /understand-domain — 도메인 분석 │ │ └── understand-knowledge/ # /understand-knowledge — 지식 탐색 │ │ │ ├── packages/ │ │ ├── core/src/ │ │ │ ├── schema.ts # Zod 기반 지식그래프 스키마 │ │ │ ├── search.ts # 그래프 검색 엔진 (Fuse.js) │ │ │ ├── staleness.ts # 증분 분석 감지 │ │ │ ├── embedding-search.ts │ │ │ └── analyzer/ │ │ │ ├── graph-builder.ts │ │ │ ├── layer-detector.ts # 아키텍처 레이어 분류 │ │ │ └── language-lesson.ts # 12가지 패턴 설명기 │ │ │ │ │ └── dashboard/src/ │ │ ├── App.tsx │ │ ├── store.ts # Zustand 스토어 │ │ └── components/ │ │ ├── GraphView.tsx # 메인 그래프 뷰 │ │ ├── SearchBar.tsx │ │ ├── LearnPanel.tsx │ │ └── PersonaSelector.tsx │ │ │ └── pnpm-workspace.yaml │ └── CLAUDE.md

6학습 포인트 (기술별)

이 레포에서 무엇을 배울 수 있는가

멀티에이전트 시스템 설계

배울 것: 마크다운 기반 에이전트 역할 정의 방식(.md 파일이 곧 프롬프트), 에이전트 간 통신을 디스크 I/O로 처리하는 패턴(컨텍스트 윈도우 오염 방지), 모델 계층화 전략.

실습 아이디어: 자신의 프로젝트에 2~3개 에이전트를 만들어서 README 자동 생성 파이프라인 구축.

React Flow로 인터랙티브 시각화

배울 것: React Flow의 커스텀 노드 렌더링(CustomNode.tsx), Dagre로 자동 레이아웃 계산, Zustand로 그래프 상태 관리(선택된 노드, 필터, 줌 레벨).

실습 아이디어: React Flow + Zustand로 간단한 마인드맵 에디터 만들기.

web-tree-sitter (AST 기반 정적 분석)

배울 것: WASM 기반 tree-sitter로 브라우저/Node 모두에서 동작하는 파서 구축, 다언어 AST 파싱(JS/TS/Python/Go), AST에서 함수/클래스/import 노드를 추출하는 쿼리 작성.

실습 아이디어: tree-sitter로 특정 파일의 함수 목록을 추출하는 CLI 도구 만들기.

Fuse.js 퍼지 검색 + 임베딩 시맨틱 검색

배울 것: Fuse.js로 이름 기반 퍼지 매칭 구현, 임베딩 벡터를 활용한 의미 기반 검색(embedding-search.ts), 두 가지를 결합하는 하이브리드 검색 전략.

실습 아이디어: Fuse.js로 블로그 포스트 검색 기능 구현, 이후 임베딩 검색 추가.

Claude Code 플러그인 개발

배울 것: .claude-plugin/ 매니페스트 구조, skills/ 디렉토리에서 슬래시 커맨드 정의 방법, 멀티플랫폼 지원을 위한 .copilot-plugin/, .cursor-plugin/ 등 설정.

pnpm 모노레포

배울 것: pnpm-workspace.yaml로 멀티패키지 구조 관리, @understand-anything/core 같은 내부 패키지 참조 방식, --filter 옵션으로 특정 패키지만 빌드/테스트.

7하드웨어 / 시스템 요구사항

이 레포를 사용하기 위해 필요한 것
항목요구사항
Node.jsv22 이상 (v24에서 테스트됨)
pnpmv10 이상
Claude Code최신 버전 (플러그인 마켓플레이스 지원)
디스크WASM 파일 + 지식그래프 JSON 저장용 (프로젝트 크기에 비례)
메모리대규모 코드베이스 분석 시 충분한 RAM (tree-sitter WASM 로딩)
네트워크Anthropic API 호출 필요. 로컬 GPU 불필요

8직접 해볼 수 있는 실습 과제

난이도별 4개 과제
TASK 01

플러그인 설치 및 사용 ⭐ 초급 · 30분

Claude Code에서 Understand-Anything 플러그인을 설치하고 자신의 프로젝트에서 실행합니다. /understand-dashboard로 대시보드를 열고 탐색해 보세요.

/understand → /understand-dashboard → /understand-chat "이 프로젝트에서 가장 복잡한 모듈은?"
TASK 02

미니 지식그래프 빌더 ⭐⭐ 중급 · 2~3시간

TypeScript + Zod로 노드/엣지 스키마를 정의하고, fs.readdir로 프로젝트 파일 목록을 스캔합니다. 정규식으로 import문을 파싱하여 엣지를 생성하고 JSON 파일로 저장한 뒤 React Flow로 시각화합니다.

TASK 03

증분 분석 엔진 구현 ⭐⭐⭐ 고급 · 1~2일

staleness.ts 패턴을 분석하고 Git diff를 활용한 변경 파일 감지를 구현합니다. 이전 분석 결과와 병합하는 로직을 작성하고 전체 분석 vs 증분 분석 성능을 비교합니다.

TASK 04

tree-sitter로 다언어 AST 분석기 ⭐⭐⭐ 고급 · 2~3일

web-tree-sitter를 설치하고 TypeScript/Python/Go 파서를 로드합니다. AST에서 함수/클래스/import를 추출하는 쿼리를 작성하고 기존 정규식 방식과 정확도를 비교합니다.

9관련 기술 심화 학습 로드맵

6주 커리큘럼

1주차 — TypeScript + 모노레포 기초

TypeScript 5.7 새 기능(satisfies, const 타입 파라미터), pnpm workspace 셋업 실습, Zod 스키마 설계 패턴, Vitest로 단위 테스트 작성.

2주차 — 그래프 시각화

React Flow 공식 튜토리얼 완주, Dagre 레이아웃 알고리즘 이해, Zustand 상태 관리 패턴, 커스텀 노드/엣지 렌더링.

3주차 — 정적 분석

tree-sitter 공식 문서 학습, WASM 기반 파서 로딩 메커니즘, AST 쿼리 언어(S-expression), 다언어 import/export 패턴 분석.

4주차 — LLM 에이전트 파이프라인

Claude Code 플러그인 개발 가이드, 멀티에이전트 오케스트레이션 패턴, 프롬프트 엔지니어링(마크다운 기반 에이전트 역할 정의), 디스크 기반 에이전트 간 통신 설계.

5주차 — 검색 엔진

Fuse.js 퍼지 검색 원리와 옵션 튜닝, 텍스트 임베딩과 코사인 유사도, 하이브리드 검색(키워드 + 시맨틱) 구현, 그래프 탐색: BFS 1-hop 확장.

6주차 — 통합 프로젝트

자신만의 코드 분석 플러그인 구현, 최소 3개 슬래시 커맨드 구현, 대시보드 UI 커스터마이징, 마켓플레이스 게시 또는 팀 내 공유.

10핵심 키워드 사전

이 레포를 이해하는 데 꼭 필요한 개념들
키워드설명
Knowledge Graph지식그래프. 엔티티(노드)와 관계(엣지)를 그래프 구조로 표현한 데이터 모델. 파일/함수/클래스를 노드로, 의존관계를 엣지로 표현
React FlowReact 기반 인터랙티브 노드/엣지 다이어그램 라이브러리. 드래그, 줌, 커스텀 노드 렌더링 지원
tree-sitterGitHub이 개발한 증분 파싱 라이브러리. 다양한 프로그래밍 언어의 AST를 파싱. WASM 빌드로 브라우저에서도 사용 가능
ASTAbstract Syntax Tree(추상 구문 트리). 소스코드를 트리 구조로 표현. 함수, 클래스, import문 등을 프로그래밍적으로 추출할 수 있음
Dagre방향성 그래프(DAG)의 자동 레이아웃을 계산하는 라이브러리. 노드 위치를 최적으로 배치
ZustandReact용 경량 상태 관리 라이브러리. Redux보다 간단하며 보일러플레이트가 적음
ZodTypeScript용 스키마 선언 및 런타임 검증 라이브러리. 타입 안전한 데이터 검증
Fuse.js경량 퍼지 검색 라이브러리. 오타나 부분 일치를 허용하는 클라이언트사이드 검색
Incremental Analysis증분 분석. 전체를 다시 분석하지 않고 변경된 부분만 재분석하는 기법
1-hop Expansion그래프에서 특정 노드와 직접 연결된(1단계) 이웃 노드까지 확장하는 탐색 기법
WASMWebAssembly. 브라우저와 서버 모두에서 네이티브에 가까운 성능으로 실행되는 바이너리 포맷
Persona Selector사용자의 역할(주니어 개발자, PM, 시니어 등)에 따라 설명 수준을 조절하는 UI 요소

11참고 링크

더 깊이 공부하려면