본문 바로가기
  • AI 시대에 적응하는 현대인을 위한 지식 공간
  • AI를 위한 데이터를 과학으로 역어본다
AI 코딩

Graphify로 지식기반 코딩하기

by 피크나인 2026. 4. 27.

Graphify 완벽 가이드: Karpathy의 LLM Wiki에서 지식 그래프 기반 코딩까지

RAG를 대체하는 차세대 지식관리시스템, 코딩 어시스턴트와의 통합 실전


AI 코딩 어시스턴트를 사용하다 보면 한 가지 근본적인 문제를 마주하게 됩니다. 프로젝트 규모가 커질수록 AI가 매번 처음부터 파일을 읽어야 하고, 같은 질문에도 반복적으로 전체 코드베이스를 탐색하며, 이전에 파악했던 구조적 이해가 세션 간에 전혀 유지되지 않는다는 점입니다. RAG(Retrieval-Augmented Generation)는 이 문제를 해결하려 했지만, 텍스트를 작은 청크로 나누어 벡터 유사도로 검색하는 방식은 코드의 구조적 관계를 근본적으로 손실시킵니다. 함수가 어떤 클래스를 호출하는지, 모듈 간 의존성이 어떻게 연결되어 있는지, 왜 이런 설계 결정을 내렸는지와 같은 핵심 정보가 청크 분할 과정에서 사라지게 됩니다.

 

2026년 4월 초, OpenAI 공동 창립자이자 Tesla AI 리더였던 Andrej Karpathy가 "LLM Knowledge Bases"라는 글을 공개하면서 이 문제에 대한 새로운 접근법을 제시했습니다. Karpathy는 자신의 토큰 사용량 대부분이 코드 작성이 아닌 지식 관리에 쓰이고 있다고 밝히며, LLM을 검색 엔진이 아닌 사서(Librarian)로 활용하는 패턴을 소개했습니다. 놀랍게도 이 글이 공개된 지 불과 48시간 만에, Safi Shamsi라는 개발자가 Graphify라는 오픈소스 프로젝트를 GitHub에 공개했습니다. Graphify는 Karpathy의 아이디어를 한 단계 더 발전시켜, 위키 페이지가 아닌 관계 기반 지식 그래프로 코드베이스를 구조화하는 도구입니다. 현재 GitHub 스타 24,900개 이상을 기록하며 AI 코딩 도구 생태계에서 가장 빠르게 성장하는 프로젝트 중 하나가 되었습니다.

 

이 글에서는 Graphify의 개념부터 설치, Obsidian 연동을 통한 지식관리시스템 구축, Claude Code와의 완벽한 통합, 그리고 실전 코딩 프로젝트에서의 운영 방법까지 완전히 다루겠습니다. RAG의 한계를 넘어 지식 그래프 기반의 새로운 코드베이스 관리 패러다임을 이해하고, 실제 개발 환경에 적용하는 데 필요한 모든 내용을 단계별로 안내하겠습니다.

Graphify는 코드와 문서를 연결하는 빛나는 지식 그래프를 구축하여 AI 어시스턴트에게 코드베이스의 지도를 제공합니다
Graphify는 코드와 문서를 연결하는 빛나는 지식 그래프를 구축하여 AI 어시스턴트에게 코드베이스의 지도를 제공합니다



1. Graphify란 무엇인가?

코드베이스를 지식 그래프로 변환하는 AI 스킬

Graphify는 AI 코딩 어시스턴트를 위한 오픈소스 멀티모달 지식 그래프 스킬입니다. 쉽게 말해, 프로젝트 폴더 안에 있는 코드, 문서, PDF, 이미지, 심지어 비디오와 오디오 파일까지 모두 분석하여 하나의 연결된 지식 그래프(Knowledge Graph)로 변환해 주는 도구입니다. Safi Shamsi가 개발하고 MIT 라이선스로 공개한 이 프로젝트는 GitHub에서 24,900개 이상의 스타를 기록하고 있으며, Claude Code, OpenAI Codex, Cursor, Gemini CLI, GitHub Copilot CLI 등 12개 이상의 AI 코딩 플랫폼을 공식 지원합니다. 사용 방법도 매우 직관적인데, Claude Code에서 /graphify .라는 한 줄의 명령어만 입력하면 현재 프로젝트 폴더 전체를 분석하여 지식 그래프를 구축합니다.

 

Graphify의 핵심 가치는 "한 번의 추출, 반복적인 활용"이라는 개념에 있습니다. 기존 AI 코딩 도구들은 질문을 받을 때마다 전체 파일을 처음부터 다시 읽어야 했습니다. 같은 프로젝트에서 같은 아키텍처에 대해 물어봐도 매번 새로 탐색해야 했기 때문에, 프로젝트가 커질수록 응답 시간과 토큰 비용이 기하급수적으로 늘어났습니다. Graphify는 최초 한 번의 분석으로 영속적인 지식 그래프를 구축한 뒤, 이후의 모든 질문은 이 그래프를 쿼리하는 방식으로 처리합니다.  공식 벤치마크에 따르면, Karpathy의 GitHub 레포지토리 3개와 논문 5편, 이미지 4개로 구성된 혼합 코퍼스(총 52개 파일)에서 쿼리당 토큰 사용량이 원본 파일을 직접 읽는 것 대비 71.5배 절감되는 효과를 보였습니다.

 

tree-sitter(구문 분석기) AST를 통해 25개 프로그래밍 언어를 지원하며, PDF 논문의 인용 관계 추출, Claude Vision을 활용한 이미지/다이어그램 분석, faster-whisper를 통한 비디오/오디오 로컬 트랜스크립션까지 완전한 멀티모달 처리가 가능합니다. 지원하는 프로그래밍 언어에는 Python, JavaScript, TypeScript, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C, Julia, Verilog, SystemVerilog, Vue, Svelte, Dart가 포함됩니다.

Graphify의 핵심 컨셉 개요 (입력 > 엔진 > 출력+신뢰도 태그 + 주요통계)
Graphify의 핵심 컨셉 개요 (입력 > 엔진 > 출력+신뢰도 태그 + 주요통계)

기존 RAG와 Graphify의 근본적 차이

Graphify와 기존 RAG의 차이를 이해하는 것이 이 도구의 가치를 파악하는 핵심입니다. RAG는 문서를 작은 텍스트 조각(청크)으로 나눈 후 벡터 임베딩으로 변환하여 데이터베이스에 저장하고, 질문이 들어올 때 유사한 청크를 검색하여 답변을 생성하는 방식입니다. 이 접근 방식은 범용적인 문서 QA에는 효과적이지만, 코드베이스처럼 구조적 관계가 핵심인 도메인에서는 근본적인 한계를 가집니다. 예를 들어, DigestAuth 클래스와 Response 클래스는 코드에서 직접적인 호출 관계가 있지만, 두 클래스가 서로 다른 파일에 있고 사용하는 어휘가 완전히 다르다면 벡터 유사도만으로는 이 관계를 발견하기 어렵습니다.

 

반면 Graphify는 코드의 구조 자체를 그래프로 보존합니다. 노드(Node)는 클래스, 함수, 모듈, 설계 결정, 논문 개념 등이 되고, 엣지(Edge)는 호출, 임포트, 의존성, 설계 근거, 의미적 유사성 등의 관계가 됩니다. AI 어시스턴트는 텍스트 청크를 검색하는 대신 엣지를 따라 그래프를 탐색하기 때문에, 구조적 관련성을 어휘 유사도와 무관하게 정확히 파악할 수 있습니다. 또한 모든 관계에 EXTRACTED(소스에서 직접 발견), INFERRED(합리적 추론), AMBIGUOUS(검증 필요)라는 태그가 붙어 있어, AI가 발견한 사실과 추측한 것을 명확히 구분할 수 있습니다.

항목 기존 RAG Graphify
데이터 구조 벡터 임베딩으로 변환된 텍스트 청크 노드와 엣지로 구성된 관계형 지식 그래프
검색 방식 코사인 유사도 기반 텍스트 청크 검색 엣지를 따라가는 구조적 그래프 탐색
문맥 보존 청크 분할 시 호출 관계와 의존성 손실 함수 호출, 모듈 의존성, 설계 근거 보존
신뢰도 표시 검색 결과의 출처 추적 어려움 EXTRACTED/INFERRED/AMBIGUOUS 태깅
필요 인프라 벡터 데이터베이스(Pinecone, Weaviate 등) 로컬 JSON 파일, 별도 서버 불필요
토큰 효율 매 쿼리마다 관련 청크 재검색 최초 빌드 후 71.5배 토큰 절감
적합 영역 범용 문서 QA, 대량 텍스트 검색 코드베이스 이해, 아키텍처 탐색, 설계 근거 추적

[i] 지식 그래프(Knowledge Graph)란? 개체(노드)와 그 사이의 관계(엣지)를 그래프 구조로 표현한 데이터 모델입니다. 예를 들어 "AuthService --(호출)--> UserRepository --(의존)--> Database"처럼, 코드의 구조적 관계를 시각적이고 탐색 가능한 형태로 표현합니다. Google의 검색 엔진, Wikipedia의 Wikidata 등이 대표적인 지식 그래프 활용 사례입니다.


2. LLM Wiki  |  Andrej Karpathy의 철학과 핵심 구현

"토큰의 대부분이 코드가 아닌 지식을 다루는 데 쓰이고 있다"

Graphify의 탄생 배경을 이해하려면 Andrej Karpathy가 제시한 LLM Wiki 패턴을 먼저 살펴봐야 합니다. Karpathy는 2026년 4월 3일에 공개한 글에서, 자신의 LLM 토큰 사용량의 상당 부분이 코드를 작성하는 것이 아니라 지식을 정리하고 구조화하는 데 쓰이고 있다고 밝혔습니다. 이것은 많은 개발자들이 느끼지만 명확하게 표현하지 못했던 문제를 정확히 짚어낸 것이었습니다. 대부분의 사람들은 LLM을 "똑똑한 검색 엔진"으로 사용하고 있지만, Karpathy의 통찰은 LLM을 "도서관을 소유한 사서(Librarian)"로 활용해야 한다는 것이었습니다. 검색 엔진은 질문할 때마다 처음부터 답을 찾지만, 사서는 자신이 관리하는 도서관의 구조를 이해하고 있어서 어디에 무엇이 있는지 즉시 안내할 수 있습니다.

 

Karpathy가 실제로 운영하는 워크플로우는 상당히 구체적입니다. 먼저 /raw 폴더에 관심 있는 모든 원시 자료를 수집합니다. 논문, 트윗, 스크린샷, 코드 스니펫, 메모 등 형식에 관계없이 원본 그대로 넣어 둡니다. Obsidian Web Clipper 브라우저 확장을 사용하여 웹 아티클을 마크다운으로 변환하고, 관련 이미지도 로컬에 함께 다운로드합니다. 그런 다음 LLM에게 이 원시 자료들을 구조화된 위키로 "컴파일"하도록 지시합니다. LLM은 원시 자료를 읽고, 개념별로 아티클을 작성하며, 아티클 간에 백링크(역방향 연결)를 생성하고, 카테고리를 분류합니다. Karpathy는 위키를 직접 편집하는 경우가 거의 없으며, LLM이 모든 작성과 유지보수를 담당합니다. 단일 연구 주제에 대한 그의 위키는 약 100개의 아티클과 40만 단어 규모로 성장했습니다.

LLM Wiki 패턴의 4단계 사이클

LLM Wiki는 연속적으로 순환하는 4단계 사이클로 작동합니다.

  • 첫 번째 단계는 원시 자료 수집(Raw Sources)으로, 논문, 레포지토리, 데이터셋, 이미지 등 연구 주제와 관련된 모든 자료를 /raw 디렉토리에 저장합니다.
  • 두 번째 단계는 LLM 컴파일(Compilation)로, LLM이 원시 자료를 읽고 구조화된 마크다운 위키 아티클로 변환합니다. 이 과정에서 LLM은 개념을 정의하고, 관련 아티클 간의 위키링크([[concept]])를 생성하며, 디렉토리 구조를 카테고리별로 정리합니다.
  • 세 번째 단계는 점진적 업데이트(Incremental Update)로, 새로운 원시 자료가 추가되면 LLM이 기존 위키에 이를 통합합니다. 전체를 다시 작성하는 것이 아니라, 기존 구조에 새로운 내용을 병합하는 방식입니다.
  • 네 번째 단계는 쿼리 및 활용(Query)으로, 구축된 위키를 바탕으로 질문에 답하고, 개념 간 연결을 탐색하며, 연구 방향을 정리합니다.

이 패턴의 핵심은 "축적(Accumulation)"에 있습니다. 기존 RAG 시스템은 매 질문마다 원본 문서에서 관련 청크를 처음부터 다시 검색합니다. 5개의 문서를 종합해야 하는 미묘한 질문을 던지면, LLM은 매번 관련 조각을 찾고 조합하는 과정을 반복해야 합니다. 축적이 일어나지 않는 것입니다. 반면 LLM Wiki에서는 한 번 구조화된 지식이 위키에 축적되므로, 같은 질문에 대해 이미 정리된 아티클을 참조하기만 하면 됩니다. NotebookLM, ChatGPT 파일 업로드, 대부분의 RAG 시스템이 "축적 없는 재발견" 방식으로 작동하는 반면, LLM Wiki는 지식을 점진적으로 쌓아가는 구조적 차이를 가집니다.

RAG vs LLM Wiki vs Graphify  |  3자 비교

세 가지 접근법의 본질적 차이를 이해하면 Graphify의 위치가 명확해집니다. RAG는 지식을 벡터 공간의 점(Point)으로 취급합니다. 문서를 청크로 나누고, 각 청크를 벡터로 변환하여 유사한 것을 찾는 방식입니다. 빠르고 범용적이지만, 구조적 관계를 표현하지 못합니다. LLM Wiki는 지식을 페이지(Page)로 취급합니다. 하나의 개념이 하나의 아티클이 되고, 아티클 간에 위키링크로 연결됩니다. 인간이 읽기에 자연스럽지만, 대규모에서 인덱스 파일의 한계가 드러나며, 관계의 유형이나 신뢰도를 체계적으로 표현하기 어렵습니다. Graphify는 지식을 관계(Relationship)로 취급합니다. 개념은 노드가 되고, 관계는 엣지가 되며, 각 엣지에는 유형(호출, 임포트, 유사성 등)과 신뢰도(EXTRACTED/INFERRED/AMBIGUOUS)가 태그됩니다. 페이지를 순서대로 읽는 대신, 엣지를 따라 구조를 탐색하는 방식입니다.

flowchart LR
    subgraph RAG["RAG (Retrieval-Augmented Generation)"]
        direction TB
        R1["문서 원본"] --> R2["청크 분할"]
        R2 --> R3["벡터 임베딩"]
        R3 --> R4["벡터 DB 저장"]
        R4 --> R5["유사도 검색"]
        R5 --> R6["응답 생성"]
        R6 -.->|"다음 질문: 리셋"| R5
    end

    subgraph WIKI["LLM Wiki (Karpathy)"]
        direction TB
        W1["/raw 폴더 수집"] --> W2["LLM 컴파일"]
        W2 --> W3["위키 아티클 생성"]
        W3 --> W4["백링크 연결"]
        W4 --> W5["점진적 업데이트"]
        W5 -.->|"새 자료 추가"| W2
    end

    subgraph GRAPH["Graphify (Knowledge Graph)"]
        direction TB
        G1["프로젝트 폴더"] --> G2["AST + LLM 추출"]
        G2 --> G3["지식 그래프 구축"]
        G3 --> G4["Leiden 클러스터링"]
        G4 --> G5["엣지 탐색 쿼리"]
        G5 -.->|"변경 감지: 증분 업데이트"| G2
    end

    style RAG fill:#2B2B2B,stroke:#666,color:#ccc
    style WIKI fill:#2B2B2B,stroke:#666,color:#ccc
    style GRAPH fill:#2B2B2B,stroke:#4A9BD9,color:#ccc

3. Graphify의 아키텍처와 작동 원리

3단계 파이프라인  |  결정론적 분석부터 의미적 추출까지

Graphify는 세 번의 처리 단계(Pass)를 통해 프로젝트 폴더를 지식 그래프로 변환합니다. 각 단계는 서로 다른 목적과 기술을 사용하며, 최종적으로 하나의 통합 그래프로 병합됩니다. 이 파이프라인 구조를 이해하면 Graphify가 어떤 파일에서 무엇을 추출하고, 어디까지가 확실한 정보이며 어디부터가 AI의 추론인지를 명확히 파악할 수 있습니다.

3단계 파이프라인 아키텍처 (AST -> Whisper -> LLM -> Merge -> Leiden)

 

Pass 1   |   결정론적 AST 추출 (LLM 불필요, 완전 로컬)

첫 번째 단계는 코드 파일을 대상으로 tree-sitter 파서를 사용하여 AST(Abstract Syntax Tree, 추상 구문 트리)를 분석합니다. 이 과정은 LLM을 전혀 사용하지 않으며, 모든 처리가 로컬 머신에서 결정론적으로 수행됩니다. 코드 파일의 내용이 외부로 전송되지 않기 때문에 프라이버시가 완전히 보장됩니다. 추출되는 정보에는 클래스 정의와 상속 관계, 함수 시그니처와 호출 그래프, import/require 등의 모듈 의존성, 독스트링(docstring)과 타입 힌트, 그리고 특히 주목할 만한 것으로 # NOTE:, # WHY:, # HACK:, # IMPORTANT: 같은 근거 주석(Rationale Comment)이 포함됩니다. 이 근거 주석들은 Graphify가 단순히 코드가 "무엇을 하는지"뿐 아니라 "왜 그렇게 설계되었는지"까지 추적할 수 있게 해주는 핵심 요소입니다.

Pass 2  |   로컬 트랜스크립션 (비디오/오디오 전용)

두 번째 단계는 비디오와 오디오 파일을 faster-whisper 모델로 로컬에서 트랜스크립트합니다. 오디오 데이터는 절대 외부로 전송되지 않으며, 트랜스크립트는 graphify-out/transcripts/ 디렉토리에 캐시되어 재실행 시 이미 처리된 파일을 건너뜁니다. Whisper 모델은 코퍼스의 God 노드(핵심 개념)에서 파생된 도메인 인식 프롬프트를 사용하여 기술 용어의 인식 정확도를 높입니다. YouTube URL이나 공개 비디오 URL도 yt-dlp로 오디오만 다운로드하여 동일한 파이프라인으로 처리할 수 있습니다.

Pass 3  |   LLM 서브에이전트 병렬 추출

세 번째 단계에서 Claude 서브에이전트가 문서, 논문, 이미지를 대상으로 병렬 실행됩니다. 마크다운 문서와 텍스트 파일에서는 개념(Concept), 관계(Relationship), 설계 근거(Design Rationale)를 추출합니다. PDF 논문에서는 인용 관계와 핵심 개념을 마이닝합니다. 이미지 파일(스크린샷, 다이어그램, 화이트보드 사진, 다른 언어의 이미지)에서는 Claude Vision API를 통해 시각적 내용을 분석하고 개념을 추출합니다. 이 단계에서 추출된 관계에는 의미적 유사성 엣지(semantically_similar_to)가 포함되는데, 이것은 서로 다른 파일에 있지만 같은 문제를 해결하는 코드나, 코드의 클래스와 논문에서 설명하는 알고리즘 간의 연결처럼 구조적 연결 없이도 개념적으로 관련된 노드를 잇는 역할을 합니다.

[i] 중요: Graphify는 자체 LLM을 포함하지 않습니다. AI 코딩 어시스턴트(Claude Code, Codex 등)에 이미 설정된 모델 API 키를 사용하며, 원본 소스 코드가 아닌 의미적 내용(semantic content)만 업스트림 모델에 전송합니다. 코드 파일은 Pass 1에서 완전히 로컬로 처리됩니다.

그래프 병합과 Leiden 클러스터링

세 단계의 결과는 NetworkX 라이브러리를 사용하여 하나의 통합 그래프로 병합됩니다. 이후 Leiden 알고리즘(graspologic 라이브러리)을 사용한 커뮤니티 탐지(Community Detection)가 수행됩니다. Leiden 알고리즘은 그래프 내에서 연결이 밀집된 노드 그룹을 자동으로 식별하여 커뮤니티로 분류합니다. 여기서 중요한 점은 Graphify의 클러스터링이 임베딩이 아닌 그래프 토폴로지 기반이라는 것입니다. Pass 3에서 Claude가 추출한 의미적 유사성 엣지가 이미 그래프 안에 존재하기 때문에, 별도의 임베딩 단계나 벡터 데이터베이스 없이도 커뮤니티 탐지가 의미적 관련성을 반영합니다. 그래프 구조 자체가 유사성 신호가 되는 것입니다.

출력물  |  4가지 핵심 아티팩트

Graphify를 실행하면 graphify-out/ 디렉토리에 4가지 파일이 생성됩니다. 각각의 역할과 활용 방법을 이해하는 것이 실전 운영의 기초가 됩니다.

graphify-out/
|-- graph.html         # vis.js 기반 인터랙티브 시각화 (노드 클릭, 검색, 커뮤니티 필터)
|-- GRAPH_REPORT.md    # God 노드, 의외의 연결, 추천 질문이 담긴 1페이지 감사 보고서
|-- graph.json         # 영속적 쿼리용 그래프 데이터 (몇 주 후에도 재구축 없이 쿼리 가능)
+-- cache/             # SHA256 해시 기반 증분 캐시 (재실행 시 변경 파일만 처리)

 

graph.html은 브라우저에서 열 수 있는 인터랙티브 그래프 시각화입니다. vis.js 라이브러리를 기반으로 노드 클릭, 검색, 커뮤니티별 필터링을 지원하며, 프로젝트의 전체 구조를 한눈에 파악하는 데 유용합니다. GRAPH_REPORT.md는 Graphify의 Claude Code 통합에서 가장 핵심적인 파일입니다. God 노드(가장 많은 연결을 가진 핵심 노드), 의외의 연결(Surprising Connection), 추천 질문이 일반 텍스트로 정리되어 있어, AI 어시스턴트가 코드베이스를 탐색하기 전에 먼저 읽어야 할 "지도" 역할을 합니다. graph.json은 그래프의 완전한 데이터를 JSON 형식으로 담고 있으며, CLI 쿼리나 MCP 서버를 통해 프로그래매틱하게 접근할 수 있습니다. cache/ 디렉토리는 각 파일의 SHA256 해시를 저장하여, 재실행 시 변경된 파일만 다시 처리합니다.

핵심 개념 정리

Graphify의 출력물에서 자주 등장하는 핵심 개념들을 이해해 두면 그래프를 해석하는 데 도움이 됩니다.

개념 설명
God Node 가장 많은 엣지가 연결된 허브 노드입니다. 프로젝트에서 모든 것이 경유하는 핵심 개념으로, 예를 들어 HTTP 라이브러리에서는 Client, AsyncClient, Response, Request가 God 노드가 됩니다.
Surprising Connection 코드-논문 간 엣지처럼 예상하지 못했던 크로스파일 또는 크로스모달 연결입니다. 복합 점수로 순위가 매겨지며, 각각 이유(Why)가 일반 텍스트로 설명됩니다.
Rationale Node # NOTE:, # WHY:, # HACK: 같은 주석과 독스트링, 문서의 설계 논의에서 추출됩니다. rationale_for 엣지로 연결되어 코드가 "왜 그렇게 작성되었는지"를 추적합니다.
Hyperedge 3개 이상의 노드를 동시에 연결하는 그룹 관계입니다. 예를 들어 "공유 프로토콜을 구현하는 모든 클래스"나 "인증 흐름에 참여하는 모든 함수"처럼 쌍(pair) 단위 엣지로는 표현할 수 없는 관계를 나타냅니다.
Confidence Score INFERRED 엣지에 부여되는 0.0~1.0 범위의 신뢰도 점수입니다. EXTRACTED 엣지는 항상 1.0이며, AMBIGUOUS 엣지는 사람의 검증이 필요합니다.
Semantic Similarity Edge 구조적 연결(호출, 임포트) 없이 개념적으로 관련된 노드 간의 엣지입니다. 서로 다른 파일에서 같은 문제를 해결하는 두 함수, 코드의 클래스와 논문의 알고리즘 간 연결 등이 이에 해당합니다.

4. Graphify 설치 및 기본 활용

사전 요구사항과 설치

Graphify를 사용하기 위해서는 Python 3.10 이상과 하나 이상의 AI 코딩 어시스턴트가 필요합니다. Claude Code, OpenAI Codex, OpenCode, Cursor, Gemini CLI, GitHub Copilot CLI, Aider, OpenClaw, Factory Droid, Trae, Hermes, Google Antigravity 중 하나를 이미 사용하고 있다면 바로 시작할 수 있습니다. 설치는 단 한 줄의 명령어로 완료됩니다.

pip install graphifyy && graphify install

 

여기서 반드시 주의해야 할 점이 있습니다. PyPI에 등록된 공식 패키지 이름은 graphifyy(y가 두 개)입니다. graphify라는 이름의 다른 패키지가 PyPI에 존재하지만, 이 프로젝트와 무관합니다. 공식 레포지토리는 safishamsi/graphify뿐이며, CLI 명령어와 스킬 명령어는 graphify(y 하나)로 사용합니다. 패키지명과 명령어명이 다르다는 점을 기억해 두시기 바랍니다.

[!] WSL/Linux 사용자 주의사항: Ubuntu는 기본적으로 python이 아닌 python3 명령어를 제공합니다. PEP 668 충돌을 피하기 위해 가상 환경(venv)을 사용하는 것이 권장됩니다.
# WSL/Linux에서 권장되는 설치 방법
python3 -m venv .venv && .venv/bin/pip install graphifyy

플랫폼별 설치 명령어

기본 graphify install 명령은 Claude Code 환경을 자동 감지하여 설정합니다. 다른 플랫폼을 사용하는 경우 --platform 옵션을 지정합니다.

플랫폼 설치 명령어 비고
Claude Code (Linux/Mac) graphify install 자동 감지
Claude Code (Windows) graphify install --platform windows 자동 감지 또는 명시
Codex graphify install --platform codex ~/.codex/config.toml에 multi_agent = true 추가 필요
OpenCode graphify install --platform opencode tool.execute.before 플러그인 자동 설정
Cursor graphify cursor install .cursor/rules/ 자동 설정
Gemini CLI graphify install --platform gemini BeforeTool Hook 자동 설정
GitHub Copilot CLI graphify install --platform copilot ~/.copilot/skills/ 설정
Aider graphify install --platform aider AGENTS.md 기반
Trae graphify install --platform trae AGENTS.md 기반 (Hook 미지원)

기본 사용  |  첫 번째 그래프 빌드

설치가 완료되면 AI 코딩 어시스턴트를 열고 프로젝트 디렉토리에서 다음 명령을 실행합니다. Codex 사용자는 / 대신 $를 사용한다는 점에 유의하시기 바랍니다.

# Claude Code에서 현재 디렉토리 그래프 빌드
/graphify .

# 특정 폴더를 대상으로 빌드
/graphify ./src

# deep 모드: 더 공격적인 INFERRED 엣지 추출
/graphify ./raw --mode deep

# 변경 파일만 재추출하여 기존 그래프에 병합
/graphify ./raw --update

# 방향 그래프 빌드 (엣지 방향 보존: source -> target)
/graphify ./raw --directed

 

첫 번째 실행은 프로젝트 전체를 분석하기 때문에 파일 수와 규모에 따라 수 분에서 수십 분이 소요될 수 있으며, LLM API 토큰도 소비됩니다. 그러나 이것은 초기 투자이며, 이후의 모든 쿼리는 캐시된 그래프를 활용하기 때문에 토큰 비용이 크게 절감됩니다. cache/ 디렉토리의 SHA256 해시 덕분에 재실행 시에는 변경된 파일만 다시 처리하므로, 두 번째 이후의 빌드는 훨씬 빠르게 완료됩니다.

.graphifyignore로 노이즈 제거

프로젝트에 포함할 필요가 없는 디렉토리와 파일을 제외하면 그래프의 품질과 빌드 속도가 크게 향상됩니다. .gitignore와 동일한 문법을 사용하는 .graphifyignore 파일을 프로젝트 루트에 생성합니다.

# .graphifyignore
vendor/
node_modules/
dist/
build/
.git/
*.min.js
*.min.css
*.generated.py
__pycache__/
*.pyc

 

이 파일은 레포지토리 루트에 한 번만 작성하면 되며, 하위 폴더에서 Graphify를 실행할 때도 패턴이 올바르게 적용됩니다. 불필요한 생성 코드, 번들 파일, 캐시 디렉토리를 제외하면 God 노드와 커뮤니티 탐지의 정확도가 크게 높아집니다.

그래프 쿼리  |  구축된 지식에 질문하기

그래프가 구축되면 다양한 방법으로 지식을 쿼리할 수 있습니다. CLI에서 직접 질문하거나, 경로를 추적하거나, 특정 노드에 대한 설명을 요청할 수 있습니다.

# 자연어 쿼리: 특정 개념 간의 연결 탐색
graphify query "what connects attention to the optimizer?"

# DFS(깊이 우선 탐색)로 특정 경로 추적
graphify query "show the auth flow" --dfs

# 토큰 예산 제한 쿼리
graphify query "what is the main entry point?" --budget 1500

# 두 노드 간 최단 경로 탐색
graphify path "DigestAuth" "Response"

# 특정 노드에 대한 일반 텍스트 설명
graphify explain "SwinTransformer"

# 특정 graph.json 파일 지정
graphify query "..." --graph graphify-out/graph.json

중요한 것은 graph.json을 프롬프트에 통째로 붙여넣는 것이 아니라는 점입니다. 올바른 워크플로우는 먼저 GRAPH_REPORT.md로 고수준 개요를 파악한 후, graphify query로 특정 질문에 대한 작은 서브그래프를 추출하고, 그 집중된 결과를 AI 어시스턴트에게 전달하는 것입니다. 이렇게 하면 전체 코퍼스를 덤프하는 대신 관련성 높은 정보만 효율적으로 전달할 수 있습니다.


5. Graphify + Obsidian  |  Wiki 기반 지식관리시스템 구축

Obsidian과 Graphify의 시너지

Obsidian은 로컬 마크다운 파일 기반의 지식관리 도구로, 노트 간의 위키링크([[concept]])와 Graph View를 통해 개인 지식 베이스를 시각적으로 탐색할 수 있는 강력한 플랫폼입니다. Graphify는 Obsidian과의 통합을 공식 지원하며, --obsidian 플래그를 통해 지식 그래프를 Obsidian Vault 형태로 자동 생성할 수 있습니다. 이 두 도구의 결합은 코드베이스의 구조적 지식(Graphify)과 인간이 읽고 편집할 수 있는 위키 형태의 지식(Obsidian)을 하나의 시스템으로 통합하는 효과를 만들어냅니다. Obsidian의 Graph View는 Graphify가 구축한 모든 위키링크를 자동으로 시각화하므로, 별도의 시각화 도구를 구축하지 않아도 지식 베이스의 전체 구조를 한눈에 파악할 수 있습니다.

Graphify + Obsidian 지식관리시스템 (3계층 쿼리 규칙 포함)
Graphify + Obsidian 지식관리시스템 (3계층 쿼리 규칙 포함)

Obsidian Vault와 Wiki 생성

Graphify에서 Obsidian 관련 출력을 생성하는 방법은 두 가지입니다. --obsidian 플래그는 그래프 데이터를 Obsidian Vault 형태의 마크다운 파일들로 변환하여 출력합니다. --wiki 플래그는 커뮤니티별 마크다운 아티클과 index.md 진입점을 포함하는 에이전트가 크롤 가능한(agent-crawlable) 위키를 생성합니다. 두 옵션을 함께 사용하면 Obsidian에서 열 수 있는 구조화된 위키와 AI 어시스턴트가 탐색할 수 있는 인덱스를 동시에 얻을 수 있습니다.

# Obsidian Vault 포함 그래프 빌드
/graphify ./raw --obsidian

# Vault 저장 경로 직접 지정
/graphify ./raw --obsidian --obsidian-dir ~/vaults/myproject

# Wiki 생성 (index.md + 커뮤니티별 아티클)
/graphify ./raw --wiki

# Obsidian + Wiki 동시 생성
/graphify ./raw --obsidian --wiki --obsidian-dir ~/vaults/myproject

--wiki 옵션으로 생성되는 위키는 Wikipedia 스타일의 마크다운 아티클로, 각 커뮤니티와 God 노드에 대한 독립적인 아티클이 작성되며, index.md 파일이 전체 위키의 진입점 역할을 합니다. AI 에이전트가 index.md를 읽는 것만으로 전체 지식 베이스를 탐색할 수 있기 때문에, JSON을 파싱하는 대신 파일을 읽는 방식으로 지식에 접근할 수 있습니다.

단일 Vault 전략  |  프로젝트 간 지식 단절 방지

여러 프로젝트를 동시에 관리하는 개발자라면, 프로젝트마다 별도의 Vault를 만드는 것보다 하나의 통합 Vault를 사용하는 전략이 훨씬 효과적입니다. 커뮤니티에서 검증된 Vault 구조는 다음과 같습니다. 이 구조의 핵심은 "Supabase Auth"에 대한 노트가 프로젝트 A와 프로젝트 B 모두에서 참조될 수 있다는 점입니다. 프로젝트별 Vault를 분리하면 이런 크로스프로젝트 지식 연결이 불가능해집니다.

~/vault/                          # 모든 프로젝트를 위한 단일 Vault
|-- CLAUDE.md                     # Claude Code 글로벌 지시문
|-- permanent/                    # 제텔카스텐 영구 노트 (검증된 지식)
|-- inbox/                        # 원시 자료 수집 (아이디어, 드래프트)
|-- fleeting/                     # 임시 메모
|-- templates/                    # 노트 템플릿
|-- logs/                         # 글로벌 세션 로그
|-- references/                   # 참고 자료
|-- my-project/                   # 프로젝트 A의 MOC와 노트
|   |-- architecture/             # 아키텍처 결정, 컨벤션
|   |-- pipeline/                 # 데이터 흐름, API
|   |-- data/                     # 스키마, 데이터 모델
|   |-- features/                 # 계획/구현된 기능
|   +-- logs/                     # 프로젝트 세션 로그
|-- another-project/              # 프로젝트 B의 노트
|   +-- ...
|-- chats/                        # Claude 대화 임포트
|   |-- code/                     # Claude Code 대화
|   +-- web/                      # Claude Web/App 대화
+-- graphify/                     # 코드베이스 지식 그래프
    |-- my-project/               # 프로젝트 A의 그래프 노트
    +-- another-project/          # 프로젝트 B의 그래프 노트

3계층 쿼리 규칙

통합 Vault와 Graphify를 함께 운영할 때, AI 어시스턴트가 정보를 탐색하는 우선순위를 명확히 설정하면 효율성이 크게 향상됩니다. 이것을 3계층 쿼리 규칙이라고 부릅니다.

  • 첫 번째 계층은 Graphify 그래프 쿼리입니다. graphify-out/graph.json 또는 graphify-out/wiki/index.md를 먼저 확인하여 코드 구조와 연결 관계를 파악합니다.
  • 두 번째 계층은 Obsidian Vault 탐색입니다. 아키텍처 결정, 개발 진행 상황, 프로젝트 맥락 등 인간이 기록한 지식을 확인합니다.
  • 세 번째 계층은 원본 코드 파일 읽기입니다. 실제 코드를 수정하거나 앞의 두 계층에서 답을 찾지 못한 경우에만 원본 파일에 접근합니다. 이 규칙을 CLAUDE.md에 명시해 두면 AI 어시스턴트가 매번 전체 파일을 그렙(grep)하는 대신 구조화된 지식부터 먼저 활용하게 됩니다.

6. 지식관리시스템의 확장 운영

증분 업데이트와 Auto-Sync

지식관리시스템의 가치는 최초 구축보다 지속적인 업데이트에서 나옵니다. Graphify는 변경된 파일만 재처리하는 증분 업데이트 메커니즘을 제공하여, 프로젝트가 성장해도 유지보수 비용을 최소화합니다. --update 플래그를 사용하면 SHA256 캐시와 비교하여 변경된 파일만 재추출한 후 기존 그래프에 병합합니다. 전체 그래프를 처음부터 다시 빌드하지 않으므로 토큰 비용과 시간이 크게 절약됩니다.

# 변경 파일만 재추출하여 기존 그래프에 병합
/graphify ./src --update

# 코드 파일만 재추출 (LLM 불필요, AST만 재실행)
graphify update ./src

# 기존 그래프에서 클러스터링만 재실행 (추출 없음)
/graphify ./src --cluster-only

--watch 모드를 사용하면 백그라운드 터미널에서 파일 시스템 변경을 실시간으로 감시합니다. 코드 파일이 저장될 때마다 즉시 AST 리빌드가 수행되며, 이 과정은 LLM을 사용하지 않으므로 완전 무료이고 매우 빠릅니다. 문서나 이미지가 변경되면 LLM 재추출이 필요하므로 자동 실행 대신 --update 실행을 알려주는 알림이 표시됩니다. 이렇게 코드 변경과 문서 변경을 분리하여 처리함으로써 불필요한 토큰 소비를 방지합니다.

# Auto-Sync 모드 (백그라운드 터미널에서 실행)
/graphify ./src --watch

Git Hooks: 커밋과 브랜치 전환 시 자동 리빌드

개발 워크플로우에 그래프 업데이트를 자연스럽게 통합하려면 Git Hooks를 활용하는 것이 가장 효과적입니다. graphify hook install 명령은 post-commit과 post-checkout 훅을 설치하여, 커밋할 때마다 그리고 브랜치를 전환할 때마다 그래프를 자동으로 리빌드합니다. 리빌드가 실패하면 훅이 비정상 종료 코드를 반환하여 Git이 에러를 표시하므로, 그래프 동기화 실패가 조용히 무시되지 않습니다. 별도의 백그라운드 프로세스를 실행할 필요가 없다는 점이 --watch 모드와의 주요 차이점입니다.

# Git Hooks 설치
graphify hook install

# 훅 상태 확인
graphify hook status

# Git Hooks 제거
graphify hook uninstall

외부 콘텐츠 추가: 논문, 트윗, 비디오

Graphify의 지식 그래프는 프로젝트 내부 파일에 국한되지 않습니다. graphify add 명령을 사용하면 외부 URL에서 콘텐츠를 가져와 그래프에 통합할 수 있습니다. arXiv 논문, 트윗, YouTube 비디오 등 다양한 소스를 지원하며, --author와 --contributor 옵션으로 원저자와 그래프 기여자를 각각 태깅할 수 있습니다. 이것은 Karpathy가 /raw 폴더에 관련 자료를 수집하는 패턴을 자동화한 것과 같습니다.

# arXiv 논문 추가
/graphify add https://arxiv.org/abs/1706.03762

# 트윗 추가
/graphify add https://x.com/karpathy/status/...

# YouTube 비디오 추가 (오디오 다운로드 -> Whisper 트랜스크립션)
/graphify add https://youtube.com/watch?v=...

# 저자와 기여자 태깅
/graphify add https://arxiv.org/abs/1706.03762 --author "Vaswani et al." --contributor "Denny"

비디오와 오디오 처리를 위해서는 추가 패키지 설치가 필요합니다. pip install 'graphifyy[video]'를 실행하면 yt-dlp(오디오 다운로드)와 faster-whisper(로컬 트랜스크립션) 의존성이 함께 설치됩니다. 모든 트랜스크립션은 로컬에서 수행되며 오디오 데이터가 외부로 전송되지 않습니다. 기술 콘텐츠의 인식 정확도를 높이려면 --whisper-model medium 옵션으로 더 큰 모델을 사용할 수 있습니다.

# 비디오/오디오 지원 설치
pip install 'graphifyy[video]'

# 더 높은 정확도의 Whisper 모델 사용
/graphify ./my-corpus --whisper-model medium

MCP 서버와 Neo4j 내보내기

Graphify의 그래프 데이터를 외부 시스템과 연동하는 방법도 다양합니다. MCP(Model Context Protocol) 서버 모드로 실행하면 AI 어시스턴트가 query_graph, get_node, get_neighbors, shortest_path 같은 도구를 통해 그래프에 구조적으로 접근할 수 있습니다. 텍스트를 붙여넣는 방식이 아닌 도구 호출(tool calling) 방식으로 반복 쿼리가 가능해지므로, 복잡한 탐색 작업에서 훨씬 효율적입니다.

# MCP stdio 서버 실행
python -m graphify.serve graphify-out/graph.json

# 또는 빌드 시 MCP 서버를 함께 시작
/graphify ./raw --mcp

대규모 그래프를 전문 그래프 데이터베이스에서 관리하고 싶다면 Neo4j로 직접 내보낼 수도 있습니다. --neo4j 옵션은 Cypher 쿼리 텍스트 파일을 생성하고, --neo4j-push 옵션은 실행 중인 Neo4j 인스턴스에 직접 데이터를 푸시합니다. Gephi나 yEd 같은 그래프 시각화 도구를 사용하려면 --graphml 옵션으로 GraphML 형식으로 내보낼 수 있습니다.

# Cypher 쿼리 파일 생성
/graphify ./raw --neo4j

# Neo4j에 직접 푸시
/graphify ./raw --neo4j-push bolt://localhost:7687

# GraphML 형식으로 내보내기 (Gephi, yEd용)
/graphify ./raw --graphml

# SVG 이미지로 그래프 내보내기
/graphify ./raw --svg

7. 코딩 어시스턴트와의 Graphify 통합  |  실전

플랫폼별 통합 메커니즘 이해

Graphify가 AI 코딩 어시스턴트와 통합되는 방식은 플랫폼마다 다릅니다. 핵심은 "Always-On" 메커니즘, 즉 개발자가 매번 명시적으로 그래프를 참조하라고 지시하지 않아도 AI 어시스턴트가 자동으로 지식 그래프를 활용하는 상시 연결 구조를 만드는 것입니다. 이 방식이 없다면 개발자가 매 질문마다 "먼저 GRAPH_REPORT.md를 읽어라"라고 지시해야 하므로, Graphify의 실질적 가치가 크게 떨어집니다.

각 플랫폼이 지원하는 Always-On 메커니즘은 크게 세 가지로 분류됩니다.

  • 첫 번째는 Hook 방식으로, Claude Code의 PreToolUse Hook, Codex의 PreToolUse Hook, Gemini CLI의 BeforeTool Hook이 이에 해당합니다. 특정 도구(Glob, Grep, Bash 등)가 실행되기 직전에 자동으로 발동하여 그래프 참조를 유도합니다.
  • 두 번째는 플러그인 방식으로, OpenCode의 tool.execute.before 이벤트 플러그인이 대표적입니다. Bash 도구 호출 전에 그래프 리마인더를 도구 출력에 주입합니다.
  • 세 번째는 규칙 파일 방식으로, AGENTS.md(Codex, Aider, OpenClaw, Factory Droid, Trae), Cursor의 .cursor/rules/graphify.mdc, Google Antigravity의 .agent/rules/graphify.md가 이에 해당합니다. 모든 대화에 자동으로 포함되는 규칙 파일에 그래프 활용 지시를 명시합니다.
플랫폼 Always-On 메커니즘 Hook지원 통합 명령어
Claude Code CLAUDE.md + PreToolUse Hook O graphify claude install
Codex AGENTS.md + PreToolUse Hook O graphify codex install
OpenCode AGENTS.md + tool.execute.before 플러그인 O graphify opencode install
Cursor .cursor/rules/graphify.mdc (alwaysApply: true) X (불필요) graphify cursor install
Gemini CLI GEMINI.md + BeforeTool Hook O graphify gemini install
GitHub Copilot CLI ~/.copilot/skills/ 스킬 파일 X graphify copilot install
Aider AGENTS.md X graphify aider install
OpenClaw AGENTS.md X graphify claw install
Factory Droid AGENTS.md (Task 도구로 병렬 실행) X graphify droid install
Trae AGENTS.md (Agent 도구로 병렬 실행) X graphify trae install
Hermes AGENTS.md + ~/.hermes/skills/ X graphify hermes install
Google Antigravity .agent/rules/ + .agent/workflows/ X graphify antigravity install

Always-On Hook vs 명시적 트리거의 차이

Graphify의 통합에는 두 가지 레벨이 있으며, 이 차이를 이해하는 것이 효과적인 활용의 핵심입니다. 비유하자면, Always-On Hook은 AI 어시스턴트에게 지도(Map)를 제공하는 것이고, /graphify 명시적 명령은 그 지도 위에서 정밀한 네비게이션(Navigation)을 수행하는 것입니다.

Always-On Hook이 활성화되면 AI 어시스턴트는 Glob이나 Grep 같은 파일 검색 도구를 실행하기 전에 자동으로 GRAPH_REPORT.md를 참조합니다. 이 보고서에는 God 노드(핵심 진입점), 커뮤니티 구조(관련 모듈 그룹), 의외의 연결(숨겨진 의존성)이 요약되어 있으므로, AI가 파일을 무작위로 검색하는 대신 구조를 따라 효율적으로 탐색할 수 있습니다. 일상적인 대부분의 질문은 이 한 페이지 요약만으로도 충분히 대응됩니다.

 

명시적 /graphify 명령은 더 깊은 수준의 탐색이 필요할 때 사용합니다. graphify query는 원본 graph.json에서 BFS(너비 우선 탐색)나 DFS(깊이 우선 탐색)로 서브그래프를 추출하고, graphify path는 두 노드 간의 정확한 경로를 추적하며, graphify explain은 특정 노드의 엣지 레벨 상세 정보(관계 유형, 신뢰도 점수, 소스 위치)를 제공합니다. 이런 정밀 쿼리는 리팩토링 전 의존성 분석, 버그 원인 추적, 아키텍처 결정의 근거 확인 같은 심층 작업에 적합합니다.

graph TB
    subgraph AlwaysOn["Always-On Hook (자동)"]
        A1["개발자 질문"] --> A2["AI가 Glob/Grep 호출 시도"]
        A2 --> A3["PreToolUse Hook 발동"]
        A3 --> A4["GRAPH_REPORT.md 자동 참조"]
        A4 --> A5["구조 기반 탐색으로 응답"]
    end
    
    subgraph Explicit["명시적 /graphify 명령 (수동)"]
        B1["/graphify query 실행"] --> B2["graph.json에서 서브그래프 추출"]
        B2 --> B3["엣지 레벨 상세 정보 반환"]
        B3 --> B4["노드별 관계/신뢰도/소스 확인"]
    end
    
    style AlwaysOn fill:#2B2B2B,stroke:#4A9BD9,color:#ccc
    style Explicit fill:#2B2B2B,stroke:#6B8E5A,color:#ccc

graph.json 활용 워크플로우  |  3단계 접근법

graph.json은 그래프의 전체 데이터를 담고 있지만, 이것을 프롬프트에 한꺼번에 붙여넣는 것은 올바른 사용 방법이 아닙니다. 파일 크기가 클 수 있고, LLM의 컨텍스트 윈도우를 불필요하게 소비하기 때문입니다. 공식 문서에서 권장하는 3단계 접근법은 다음과 같습니다.

# 1단계: GRAPH_REPORT.md로 고수준 개요 확인
cat graphify-out/GRAPH_REPORT.md

# 2단계: 특정 질문에 대한 서브그래프 추출
graphify query "show the auth flow" --graph graphify-out/graph.json

# 3단계: 추출된 서브그래프를 AI 어시스턴트에 전달
# (쿼리 결과에는 노드 레이블, 엣지 유형, 신뢰도 태그, 소스 파일이 포함됨)

이 3단계 접근법을 AI 어시스턴트에게 지시하는 프롬프트 예시는 다음과 같습니다. 이 형식을 CLAUDE.md나 AGENTS.md에 포함시켜 두면, AI가 항상 그래프를 우선 참조하는 습관을 유지합니다.

이 그래프 쿼리 결과를 사용하여 질문에 답변하세요. 
추측보다 그래프 구조를 우선하고, 가능한 경우 소스 파일을 인용하세요.

8. 코딩 프로젝트에서의 효율적 운영  |  실전 워크플로우

프로젝트 초기 세팅 워크플로우

새 프로젝트에 Graphify를 도입할 때 권장되는 초기 세팅 순서를 단계별로 안내하겠습니다. 이 과정을 한 번 완료하면 이후에는 자동화된 워크플로우가 지식 그래프를 지속적으로 최신 상태로 유지합니다.

# 1단계: Graphify 설치 (최초 1회)
pip install graphifyy && graphify install

# 2단계: 프로젝트 디렉토리로 이동
cd ~/my-project

# 3단계: .graphifyignore 생성으로 노이즈 제거
cat > .graphifyignore << 'EOF'
node_modules/
dist/
build/
.git/
*.min.js
*.min.css
*.generated.py
__pycache__/
*.pyc
vendor/
coverage/
.next/
EOF

# 4단계: 최초 그래프 빌드 (시간과 토큰 투자)
/graphify .

# 5단계: Always-On 설정 (Claude Code 기준)
graphify claude install

# 6단계: Git Hooks 설치로 자동 동기화
graphify hook install

# 7단계: 설정 확인
graphify hook status
cat graphify-out/GRAPH_REPORT.md

이 세팅이 완료되면, 이후부터는 커밋할 때마다 그래프가 자동 리빌드되고, Claude Code가 파일 검색 전에 항상 그래프를 먼저 참조하는 워크플로우가 작동합니다. 초기 그래프 빌드는 프로젝트 규모에 따라 수 분에서 수십 분이 소요되며 LLM 토큰을 소비하지만, 이것은 일회성 투자입니다.

일상 개발에서의 그래프 활용 패턴

프로젝트에 Graphify가 통합된 이후의 일상 개발 패턴을 구체적인 시나리오별로 살펴보겠습니다.

코드 탐색  |  "이 모듈은 무엇과 연결되어 있나?"

새로운 팀원이 프로젝트에 합류하거나, 오랜만에 특정 모듈을 수정해야 할 때 가장 먼저 해야 할 일은 해당 모듈의 의존성과 영향 범위를 파악하는 것입니다. 기존 방식에서는 grep이나 IDE의 참조 찾기 기능을 사용하지만, 이것은 텍스트 수준의 검색이므로 간접 의존성이나 개념적 관련성을 놓칠 수 있습니다. Graphify를 사용하면 구조적 연결과 의미적 연결을 모두 포함하는 완전한 의존성 맵을 얻을 수 있습니다.

# AuthService의 모든 연결 확인
graphify query "show dependencies of AuthService" --dfs

# 두 모듈 간의 연결 경로 추적
graphify path "UserController" "DatabasePool"

아키텍처 이해  |  "프로젝트의 핵심 진입점은 어디인가?"

GRAPH_REPORT.md의 God 노드 목록은 프로젝트에서 가장 많은 연결을 가진 핵심 개념을 보여줍니다. 예를 들어 HTTP 라이브러리에서 God 노드가 Client, AsyncClient, Response, Request라면, 이 네 개의 클래스가 프로젝트의 중심축이며 대부분의 기능이 이를 경유한다는 것을 즉시 파악할 수 있습니다. 새 팀원의 온보딩이나 코드 리뷰에서 "어디서부터 읽어야 하나?"라는 질문에 대한 정확한 답을 제공합니다.

# 프로젝트의 핵심 진입점 파악
graphify query "what are the main entry points?" --budget 1500

리팩토링  |  "숨겨진 의존성이 있는가?"

GRAPH_REPORT.md의 Surprising Connection 섹션은 예상하지 못한 크로스파일 연결을 보여줍니다. 이것은 리팩토링 전에 반드시 확인해야 할 정보입니다. 코드-논문 간 엣지가 높은 순위로 나타나면, 해당 코드가 특정 논문의 알고리즘을 구현하고 있음을 의미하므로 리팩토링 시 알고리즘의 무결성을 유지해야 합니다. 코드-코드 간 의외의 연결은 직접적인 import 관계 없이도 동일한 데이터 구조나 패턴을 공유하는 모듈을 드러냅니다.

코드 리뷰  |  "왜 이렇게 설계했는가?"

Rationale 노드는 # NOTE:, # WHY:, # HACK: 주석과 독스트링에서 추출된 설계 근거입니다. 코드 리뷰에서 "이 부분은 왜 이렇게 구현했나요?"라는 질문이 나올 때, Rationale 노드를 쿼리하면 원래 개발자가 남긴 설계 의도를 확인할 수 있습니다. 이 기능의 효과를 최대화하려면 코드에 설계 근거 주석을 꾸준히 작성하는 습관이 중요합니다.

# 특정 함수의 설계 근거 확인
graphify explain "parseAuthHeader"

대규모 프로젝트 전략

프로젝트 규모가 커질수록 Graphify의 토큰 절감 효과는 더욱 극대화됩니다. 공식 벤치마크에 따르면, 6개 파일로 구성된 소규모 프로젝트에서는 약 1배의 절감(그래프 자체의 구조적 가치는 존재)에 그치지만, 52개 파일의 혼합 코퍼스에서는 71.5배의 토큰 절감이 발생합니다. 500k 단어 규모의 코퍼스에서도 BFS 서브그래프 쿼리가 약 2k 토큰 수준을 유지하는 반면, 원본 파일을 직접 읽으면 약 670k 토큰이 필요합니다.

 

대규모 프로젝트에서 효과적으로 운영하기 위한 전략은 다음과 같습니다.

  • --budget 옵션으로 쿼리당 토큰 상한을 설정하여 비용을 통제할 수 있습니다. 서브폴더 단위로 그래프를 분할 빌드하면 필요한 영역만 정밀하게 관리할 수 있습니다.
  • --cluster-only 옵션으로 추출 없이 클러스터링만 재실행하면, 기존 그래프에서 커뮤니티 구조만 빠르게 재분석할 수 있습니다.

9. Claude Code와의 완벽한 통합

graphify claude install이 수행하는 2가지

Graphify는 지원하는 12개 이상의 플랫폼 중에서 Claude Code와 가장 깊은 수준의 통합을 제공합니다. graphify claude install 명령을 실행하면 정확히 두 가지 작업이 수행되며, 이 두 가지가 Claude Code의 기존 생태계(CLAUDE.md, Skills, Hooks)와 어떻게 맞물리는지 이해하는 것이 핵심입니다.

Claude Code 완전 통합 구조 (CLAUDE.md + Skills + Hook + MCP)
Claude Code 완전 통합 구조 (CLAUDE.md + Skills + Hook + MCP)

첫 번째  |  CLAUDE.md에 지시문 추가

프로젝트의 CLAUDE.md 파일에 Graphify 스킬 등록과 활용 지시가 추가됩니다. 이 지시문은 Claude에게 /graphify 명령이 입력되면 Skill 도구를 통해 graphify 스킬을 호출하라고 알려줍니다. 또한 아키텍처 관련 질문에 답하기 전에 graphify-out/GRAPH_REPORT.md를 먼저 읽도록 지시합니다.

# CLAUDE.md에 추가되는 내용 (graphify claude install 실행 시)
- **graphify** (`~/.claude/skills/graphify/SKILL.md`) - any input to knowledge graph.
  Trigger: `/graphify`
  When the user types `/graphify`, invoke the Skill tool 
  with skill: "graphify" before doing anything else.

두 번째  |  settings.json에 PreToolUse Hook 설치

이것이 Claude Code 통합의 진정한 핵심입니다. settings.json 파일에 PreToolUse Hook이 설치되어, Claude Code가 Glob(파일 패턴 검색)이나 Grep(텍스트 검색)을 실행하려 할 때마다 자동으로 발동됩니다. Hook이 발동되면 Claude는 다음과 같은 메시지를 볼 수 있게 됩니다.

"graphify: Knowledge graph exists. Read GRAPH_REPORT.md for god nodes and 
community structure before searching raw files."

 

이 메시지의 효과는 근본적입니다. Hook이 없을 때 Claude Code는 질문을 받으면 프로젝트의 모든 파일을 Glob/Grep으로 스캔하면서 관련 파일을 찾습니다. 파일이 100개, 500개로 늘어나면 이 검색 과정에서 상당한 토큰이 소비되며, 구조적 관계를 놓치는 경우도 많습니다. Hook이 활성화되면 Claude는 파일 검색 전에 GRAPH_REPORT.md라는 한 페이지짜리 지도를 먼저 읽게 됩니다. 이 지도에는 God 노드(핵심 진입점), 커뮤니티 구조(관련 모듈 그룹), Surprising Connection(숨겨진 연결)이 정리되어 있으므로, Claude는 전체 파일을 무작위로 스캔하는 대신 구조를 따라 정확한 파일에 직접 접근할 수 있습니다.

Claude Code 생태계와의 조화  |  CLAUDE.md, Skills, Hooks, MCP

Graphify의 Claude Code 통합이 기존 생태계의 각 구성 요소와 어떻게 맞물리는지 전체 그림을 살펴보겠습니다.

CLAUDE.md   |  프로젝트 지시문

CLAUDE.md는 Claude Code에게 프로젝트별 지시사항을 전달하는 파일입니다. Graphify는 여기에 스킬 등록과 그래프 활용 지시를 추가합니다. 기존에 작성해 둔 프로젝트 규칙이나 코딩 컨벤션과 충돌하지 않으며, 단순히 새로운 지시문이 추가되는 형태입니다. Graphify를 제거하고 싶다면 graphify claude uninstall로 해당 섹션만 깔끔하게 삭제됩니다.

Skills  |  스킬 파일

~/.claude/skills/graphify/SKILL.md에 Graphify 스킬 파일이 배치됩니다. 이 파일은 Claude Code에게 /graphify 명령의 전체 사용법, 옵션, 출력물 해석 방법을 알려주는 매뉴얼 역할을 합니다. Claude Code의 Skills 시스템은 / 접두어로 스킬을 호출하는 구조이므로, /graphify .는 이 스킬 파일을 참조하여 적절한 명령을 실행합니다.

Hooks  |  PreToolUse Hook

settings.json에 설치되는 PreToolUse Hook은 Claude Code의 도구 호출 파이프라인에 직접 개입합니다. Glob과 Grep 도구가 호출되기 전(Before)에 발동하여, 지식 그래프가 존재하는 경우 그래프를 먼저 참조하라는 리마인더를 주입합니다. 이것은 Claude Code의 기존 Hook 시스템을 활용하는 것이므로, 다른 PreToolUse Hook과 함께 공존할 수 있습니다.

MCP (Model Context Protocol) 서버

가장 깊은 수준의 통합을 원한다면, Graphify를 MCP 서버로 실행하여 Claude Code가 구조화된 도구 호출(tool calling)을 통해 그래프에 접근하도록 할 수 있습니다. 텍스트를 붙여넣는 방식이 아니라 query_graph, get_node, get_neighbors, shortest_path 같은 전용 도구를 사용하므로, 복잡한 반복 쿼리에서 훨씬 효율적입니다.

# MCP 서버 설정 (WSL/Linux)
python3 -m venv .venv && .venv/bin/pip install "graphifyy[mcp]"

프로젝트의 .mcp.json 파일에 다음 설정을 추가합니다.

{
  "mcpServers": {
    "graphify": {
      "type": "stdio",
      "command": ".venv/bin/python3",
      "args": ["-m", "graphify.serve", "graphify-out/graph.json"]
    }
  }
}

이 설정이 완료되면 Claude Code가 Graphify MCP 서버를 자동으로 인식하여, 그래프 쿼리를 텍스트가 아닌 도구 호출로 수행합니다. Always-On Hook과 MCP 서버를 함께 사용하면, 일상적인 질문은 Hook이 GRAPH_REPORT.md로 처리하고, 심층 탐색은 MCP 도구로 처리하는 이상적인 조합이 완성됩니다.

통합 해제

Graphify의 Claude Code 통합을 제거하려면 단일 명령으로 CLAUDE.md 지시문과 PreToolUse Hook을 모두 깔끔하게 삭제할 수 있습니다.

# Claude Code 통합 완전 해제
graphify claude uninstall

이 명령은 CLAUDE.md에서 graphify 관련 섹션만 제거하고, settings.json에서 PreToolUse Hook을 삭제합니다. graphify-out/ 디렉토리의 그래프 데이터는 보존되므로, 나중에 다시 graphify claude install로 재연동할 수 있습니다.


10. 커뮤니티 활용 사례와 생태계 분석

공식 Worked Examples  |  검증된 벤치마크

Graphify 공식 레포지토리의 worked/ 디렉토리에는 실제 코퍼스에서 실행한 결과가 입력 파일과 출력물 함께 공개되어 있어, 누구든 동일한 결과를 재현하고 검증할 수 있습니다. 이 투명성은 AI 도구에서 흔히 볼 수 없는 신뢰 구축 방식이며, 커뮤니티 기여에서도 Worked Example PR이 가장 가치 있는 기여로 인정받는 이유입니다.

 

첫 번째 사례는 Karpathy의 GitHub 레포지토리 3개와 Attention 논문 5편, 다이어그램 이미지 4개를 합친 혼합 코퍼스입니다. 총 52개 파일, 약 92,000단어 규모이며, 285개 노드와 340개 엣지, 53개 커뮤니티로 클러스터링되었습니다. 쿼리당 평균 토큰은 약 1,700으로, 원본 파일을 직접 읽는 방식(약 123,000 토큰) 대비 71.5배의 토큰 절감을 달성했습니다.

 

두 번째 사례는 httpx라는 Python HTTP 라이브러리로, 6개의 Python 파일에서 144개 노드, 330개 엣지, 6개 커뮤니티가 생성되었습니다. God 노드는 Client, AsyncClient, Response, Request로 식별되었으며, DigestAuth에서 Response로의 연결이 Surprising Connection으로 보고되었습니다. 6개 파일 규모에서는 전체가 컨텍스트 윈도우에 들어가므로 토큰 절감 효과는 약 1배에 그치지만, 구조적 명확성이라는 별도의 가치를 제공합니다.

코퍼스 파일 수 노드/엣지 커뮤니티 토큰 절감
Karpathy 레포 + 논문 + 이미지 52 285 / 340 53 71.5배
Graphify 소스 + Transformer 논문 4 - - 5.4배
httpx (Python HTTP 라이브러리) 6 144 / 330 6 ~1배 (구조적 가치)

커뮤니티 확장 프로젝트

Graphify를 중심으로 다양한 커뮤니티 프로젝트가 등장하고 있으며, 이들은 각각 다른 관점에서 지식관리 문제를 해결합니다.

 

lucasrosati/claude-code-memory-setup은 Obsidian + Graphify + Claude 대화 임포트를 하나의 통합 시스템으로 구성한 프로젝트입니다. 앞서 소개한 단일 Vault 전략과 3계층 쿼리 규칙이 이 프로젝트에서 비롯되었으며, Claude Code 세션에서 71.5배의 토큰 절감을 달성했다고 보고합니다. 핵심은 Graphify의 코드 지식 그래프, Obsidian의 결정/진행 기록, 원본 코드를 계층적으로 접근하는 구조 설계에 있습니다.

 

AgriciDaniel/claude-obsidian은 Karpathy의 LLM Wiki 패턴을 Obsidian에 직접 구현한 프로젝트입니다. 대부분의 Obsidian AI 플러그인이 기존 노트에 대한 챗봇 인터페이스를 제공하는 반면, 이 프로젝트는 노트를 자율적으로 생성하고, 조직하고, 유지보수하는 지식 엔진 역할을 합니다. /wiki, /save, /autoresearch 같은 스킬을 제공하며, 시드 Vault와 함께 Graph View 사전 설정, CSS 컬러코딩(파란색=개념, 초록색=소스, 보라색=엔티티)이 포함됩니다. Graphify와 직접 통합되지는 않지만, 위키 관리 + 그래프 탐색이라는 보완적 관계로 함께 사용할 수 있습니다.

 

Ar9av/obsidian-wiki는 AI 에이전트가 Obsidian 위키를 빌드하고 유지보수할 수 있도록 설계된 프레임워크입니다. 프로젝트 기반 조직 구조, 위키 아카이브/리빌드 기능, 멀티 에이전트 인제스트(Claude Code 히스토리, Codex 세션, Slack 로그, 미팅 트랜스크립트 등), 감사 및 린트(고아 페이지, 깨진 위키링크, 누락된 프론트매터 감지) 기능을 제공합니다. Claude Code, Codex, Gemini CLI, OpenClaw 등 다양한 플랫폼의 스킬 디렉토리에 자동 심링크를 설정하여 어디서든 접근할 수 있도록 합니다.

 

obra/knowledge-graph는 Obsidian Vault를 SQLite + 벡터 임베딩으로 인덱싱하여 쿼리하는 접근법을 취합니다. Graphify와 달리 LLM을 사용하지 않고, Louvain 커뮤니티 탐지, PageRank, 베타위닉스 중심성(betweenness centrality) 같은 전통적인 그래프 알고리즘을 활용합니다. MCP 서버와 CLI를 동시에 지원하며, 22MB의 로컬 임베딩 모델(MiniLM-L6-v2)로 의미 검색을 수행합니다. LLM 비용이 전혀 들지 않는다는 장점이 있지만, Graphify의 멀티모달 추출이나 설계 근거 태깅 같은 기능은 제공하지 않습니다.

실사용 리뷰에서 드러난 장단점

Kevin Kinnett가 자신의 TypeScript/React/Node.js 프로젝트에서 Graphify를 실제 테스트한 리뷰는 현실적인 관점을 제공합니다. 그는 설치와 빌드 과정이 원활했으며, 실제 그래프 데이터(graph.json, 캐시 아티팩트)가 생성되어 도구가 실질적인 작업을 수행했음을 확인했습니다. Claude Code와의 Hook 통합도 문서대로 작동했습니다. 그러나 가장 중요한 GRAPH_REPORT.md가 그의 프로젝트에서는 비어 있는 상태로 생성되었습니다. GRAPH_REPORT.md는 Claude Code 워크플로우의 중심축이므로, 이 파일에 의미 있는 내용이 없으면 Hook의 실질적 가치가 크게 떨어집니다. 그는 이 문제가 입력 위생(Input Hygiene)과 관련될 수 있으며, 향후 보고서 생성의 안정성, Hook의 조건부 발동, 인간이 읽을 수 있는 브라우저블 위키 레이어의 강화가 필요하다고 제안했습니다.


11. RAG vs Graphify  |  패러다임 전환의 의미

RAG의 근본적 한계

RAG(Retrieval-Augmented Generation)는 LLM의 지식 한계를 외부 문서로 보완하는 강력한 패턴이며, 범용적인 문서 QA에서는 여전히 효과적인 접근법입니다. 그러나 코드베이스와 같이 구조적 관계가 핵심인 도메인에서는 몇 가지 근본적인 한계에 직면합니다. 이 한계들을 정확히 이해하면 Graphify가 어떤 문제를 해결하는지, 그리고 언제 RAG가 여전히 더 나은 선택인지를 판단할 수 있습니다.

  • 첫 번째 한계는 축적의 부재(No Accumulation)입니다. RAG는 매 질문마다 원본 문서에서 관련 청크를 처음부터 다시 검색합니다. 5개의 문서를 종합해야 하는 복잡한 질문을 10번 던지면, LLM은 10번 모두 동일한 검색-조합 과정을 반복해야 합니다. 이전 질문에서 파악한 내용이 다음 질문에 전혀 활용되지 않습니다.
  • 두 번째 한계는 구조 정보의 손실입니다. 청크 분할 과정에서 함수 호출 관계, 모듈 의존성, 클래스 상속 구조 같은 코드의 핵심 구조가 사라집니다. AuthService가 UserRepository를 호출한다는 관계는 두 클래스가 서로 다른 청크에 들어가는 순간 검색 결과에서 연결되지 않을 수 있습니다.
  • 세 번째 한계는 어휘 유사도와 구조적 관련성의 불일치입니다. DigestAuth와 Response는 사용하는 어휘가 완전히 다르지만 코드에서는 직접적인 호출 관계가 있습니다. 벡터 유사도만으로는 이런 구조적 연결을 발견하기 어렵습니다.

Graphify의 패러다임  |  "구조가 곧 신호"

Graphify는 "Structure is signal"이라는 철학을 기반으로 합니다. 텍스트의 어휘적 유사성이 아니라 코드의 구조적 관계 자체가 가장 중요한 정보라는 관점입니다. 이 패러다임에서 AI 어시스턴트는 텍스트 청크를 검색하는 대신 엣지를 따라 그래프를 탐색합니다.

 

DigestAuth --> Response라는 엣지는 두 개념이 어휘적으로 유사하든 아니든 의미 있는 구조적 연결입니다.

출처 보존(Provenance)도 중요한 차별점입니다. RAG에서는 검색 결과가 어디서 왔는지 추적하기 어렵고, AI가 어느 정도의 확신을 가지고 답하는지 알 수 없습니다. Graphify에서는 모든 엣지에 EXTRACTED(소스에서 직접 확인), INFERRED(합리적 추론, 신뢰도 점수 포함), AMBIGUOUS(검증 필요) 태그가 붙어 있어, 정보의 출처와 신뢰도를 투명하게 파악할 수 있습니다. 또한 한 번 빌드된 그래프는 영속적으로 유지되므로, 반복 쿼리에서 토큰 비용이 누적적으로 절감됩니다. SHA256 캐시 덕분에 재빌드 시에도 변경된 파일만 처리하므로, 장기적인 운영 비용이 매우 낮습니다.

graph LR
    subgraph RAG_Flow["RAG 워크플로우"]
        direction TB
        Q1["질문 입력"] --> E1["질문 임베딩"]
        E1 --> S1["벡터 DB 유사도 검색"]
        S1 --> C1["상위 K개 청크 반환"]
        C1 --> G1["LLM 응답 생성"]
        G1 -.->|"다음 질문: 전체 리셋"| Q1
    end
    
    subgraph Graphify_Flow["Graphify 워크플로우"]
        direction TB
        B1["최초 1회: 그래프 빌드"] --> P1["graph.json 영속 저장"]
        P1 --> Q2["질문 입력"]
        Q2 --> T1["엣지 기반 그래프 탐색"]
        T1 --> R1["서브그래프 + 신뢰도 반환"]
        R1 --> G2["LLM 응답 생성"]
        G2 -.->|"다음 질문: 그래프 재활용"| Q2
        P1 -.->|"파일 변경 시: 증분 업데이트"| B1
    end

    style RAG_Flow fill:#2B2B2B,stroke:#996666,color:#ccc
    style Graphify_Flow fill:#2B2B2B,stroke:#4A9BD9,color:#ccc

적합한 사용 시나리오 판단 기준

Graphify와 RAG는 경쟁 관계가 아닌 보완 관계입니다. 각각이 더 적합한 시나리오를 명확히 구분하면 올바른 도구 선택이 가능합니다. Graphify가 유리한 경우는 코드베이스 구조 이해와 아키텍처 탐색, 멀티모달 코퍼스(코드 + 논문 + 이미지 + 비디오) 관리, 설계 근거(Why) 추적, 반복 쿼리가 많은 장기 프로젝트, 구조적 관계가 어휘적 유사성보다 중요한 도메인입니다. RAG가 유리한 경우는 대규모 텍스트 문서 QA(법률 문서, 매뉴얼 등), 실시간 데이터 검색이 필요한 시스템, FAQ 봇이나 고객 지원 챗봇, 구조적 관계보다 내용 유사성이 중요한 도메인입니다.

 

두 가지를 결합하는 하이브리드 접근도 가능합니다. 커뮤니티에서는 BM25(키워드 매칭) + Vector(의미 유사도) + Graph(구조 탐색)를 결합한 트리플 검색 패턴이 논의되고 있으며, 일부 프로젝트에서는 이 조합으로 LongMemEval-S 벤치마크에서 95.2%의 정확도를 달성했다는 보고도 있습니다. Graphify의 그래프가 RAG의 벡터 검색을 대체하는 것이 아니라, 구조적 레이어로 보완하는 형태입니다.


12. 실전 트러블슈팅 및 베스트 프랙티스

흔한 문제와 해결 방법

Graphify를 실제 프로젝트에 적용할 때 자주 마주치는 문제와 해결 방법을 정리합니다.

PyPI 패키지명 혼동 문제

가장 빈번한 실수는 pip install graphify를 실행하는 것입니다. PyPI에서 graphify라는 이름의 패키지는 이 프로젝트와 무관한 완전히 다른 패키지입니다. 공식 패키지명은 graphifyy(y가 두 개)이며, CLI 명령어는 graphify(y 하나)로 사용합니다. 이 혼동을 방지하기 위해 공식 문서에서도 반복적으로 경고하고 있습니다.

# [!] 잘못된 설치 (다른 패키지가 설치됨)
pip install graphify

# [v] 올바른 설치
pip install graphifyy

GRAPH_REPORT.md가 비어 있는 경우

실사용 리뷰에서도 보고된 문제로, GRAPH_REPORT.md가 내용 없이 생성되는 경우가 있습니다. 이것은 주로 입력 파일의 품질과 관련됩니다. 코드 파일에 독스트링이나 주석이 거의 없는 경우, 문서 파일이 너무 짧거나 구조가 불분명한 경우, .graphifyignore 설정 없이 node_modules나 dist 같은 노이즈 디렉토리가 포함된 경우에 발생할 수 있습니다. 해결 방법은 .graphifyignore로 노이즈를 제거하고, --mode deep 옵션으로 더 공격적인 추출을 시도하며, 코드에 적절한 독스트링과 주석을 추가하는 것입니다.

WSL/Linux 환경의 Python 경로 문제

Ubuntu는 python이 아닌 python3을 기본 제공하며, PEP 668로 인해 시스템 패키지와의 충돌이 발생할 수 있습니다. 가상 환경(venv)을 사용하고, MCP 서버 설정 시 venv의 전체 경로를 지정하는 것이 권장됩니다.

# 가상 환경에서 설치
python3 -m venv .venv && .venv/bin/pip install "graphifyy[mcp]"

# MCP 서버 설정에서 venv 경로 사용
# command: ".venv/bin/python3"  (시스템 python3이 아님)

입력 위생(Input Hygiene) 베스트 프랙티스

Graphify의 출력 품질은 입력 파일의 품질에 크게 좌우됩니다. "쓰레기를 넣으면 쓰레기가 나온다(GIGO)"는 원칙이 그대로 적용되며, 몇 가지 입력 위생 원칙을 지키면 그래프 품질이 크게 향상됩니다.

  • 첫째, .graphifyignore를 적극 활용하여 생성 코드, 번들 파일, 캐시 디렉토리, 테스트 데이터 등 그래프에 노이즈가 되는 파일을 제외합니다.
  • 둘째, 오래되거나 부정확한 문서를 정리합니다. 현재 코드와 맞지 않는 오래된 README나 설계 문서는 잘못된 엣지를 생성할 수 있습니다.
  • 셋째, AMBIGUOUS 태그가 붙은 엣지를 정기적으로 리뷰합니다. 이 엣지들은 AI가 확신하지 못하는 관계이므로, 인간의 검증을 통해 확인하거나 제거해야 합니다.
  • 넷째, graphify-out/ 디렉토리 내의 파일을 직접 수정하지 않습니다. 이 디렉토리의 파일들은 Graphify가 자동 생성하고 관리하는 것이므로, 수동 편집은 다음 리빌드에서 덮어씌워지거나 데이터 불일치를 유발할 수 있습니다.

토큰 비용 최적화 전략

Graphify의 토큰 비용은 주로 최초 그래프 빌드(Pass 3의 LLM 추출)에서 발생합니다. 이후의 쿼리는 그래프를 로컬에서 탐색하므로 토큰 비용이 거의 들지 않습니다. 최초 빌드 비용을 최적화하는 방법은 다음과 같습니다.

  • --budget 옵션으로 쿼리당 토큰 상한을 설정할 수 있습니다. 서브폴더 단위로 그래프를 분할 빌드하면 필요한 영역만 처리하여 비용을 절감합니다.
  • --no-viz 옵션으로 HTML 시각화 생성을 건너뛰면 약간의 처리 시간을 절약할 수 있습니다.
  • --update 플래그로 변경 파일만 재추출하면 전체 리빌드 대비 비용이 크게 줄어듭니다.

13. Graphify의 미래와 생태계 확장 방향

Penpax  |  프로젝트에서 전체 업무 생활로

Graphify의 제작자 Safi Shamsi는 Graphify 위에 Penpax라는 엔터프라이즈 레이어를 구축하고 있습니다. Graphify가 "하나의 프로젝트 폴더"를 지식 그래프로 변환한다면, Penpax는 "개인의 전체 업무 생활"을 하나의 연속적으로 업데이트되는 지식 그래프로 통합하는 것을 목표로 합니다. 브라우저 히스토리, 회의 녹음, 이메일, 파일, 코드 등 업무에서 생성되는 모든 정보가 하나의 그래프로 연결됩니다. 완전한 온디바이스 처리를 표방하며, 클라우드로 데이터를 전송하지 않고, 사용자 데이터로 모델을 학습하지 않습니다. 변호사, 컨설턴트, 경영진, 의사, 연구자 등 업무가 수백 개의 대화와 문서에 분산되어 있는 전문직을 대상으로 합니다.

비교 항목 Graphify Penpax
입력 범위 하나의 프로젝트 폴더 브라우저, 회의, 이메일, 파일, 코드 전체
실행 방식 수동 명령(on-demand) 백그라운드 상시 실행(continuous)
범위 단일 프로젝트 개인의 전체 업무 생활
쿼리 인터페이스 CLI / MCP / AI 스킬 자연어, 상시 활성
프라이버시 코드는 로컬, 문서는 AI API 전송 완전 온디바이스, 클라우드 없음

AI 코딩 어시스턴트 생태계의 확장

Graphify가 이미 12개 이상의 AI 코딩 플랫폼을 지원하고 있다는 사실은, 지식 그래프 기반의 코드 이해가 특정 플랫폼에 종속된 기능이 아닌 범용적인 인프라 레이어로 자리잡고 있음을 보여줍니다. Claude Code의 PreToolUse Hook, Codex의 AGENTS.md, Cursor의 Rules, OpenCode의 플러그인 시스템 등 각 플랫폼이 제공하는 확장 메커니즘을 모두 활용하고 있으며, MCP 서버 모드를 통해 아직 공식 지원하지 않는 플랫폼에서도 도구 호출 방식으로 접근할 수 있습니다.

 

Git Hook 통합으로 개발 워크플로우에 자동 동기화가 가능해졌고, --watch 모드로 실시간 모니터링도 지원합니다. 코드를 "읽는" 것이 아닌 "탐색"하는 패러다임, 멀티모달 코퍼스의 통합 관리, 설계 근거의 자동 추적 등 Graphify가 제시하는 방향은 AI 코딩 도구의 발전 방향과 정확히 일치합니다.

개인 지식에서 팀 지식, 조직 지식으로

현재 Graphify는 주로 개인 개발자의 프로젝트 이해와 지식 관리에 초점을 맞추고 있지만, 그 구조적 특성은 팀과 조직 수준으로의 확장 가능성을 내포하고 있습니다. 여러 개발자가 동일한 graphify-out/ 디렉토리를 Git으로 공유하면 팀 전체가 같은 지식 그래프를 참조할 수 있습니다. Neo4j 내보내기 기능을 활용하면 그래프를 중앙 데이터베이스에 통합하여 조직 수준의 코드 지식 베이스를 구축할 수 있습니다. Wiki 생성 기능(--wiki)은 신규 팀원 온보딩을 위한 자동 생성 문서로 활용될 수 있습니다.

 

Graphify, Karpathy의 LLM Wiki, 그리고 그 주변에서 성장하는 커뮤니티 프로젝트들이 함께 만들어가는 흐름은 명확합니다. AI가 코드를 작성하는 것뿐 아니라 코드를 이해하고 지식을 축적하는 방식이 근본적으로 변화하고 있으며, 지식 그래프는 그 변화의 핵심 인프라가 되고 있습니다.

개인의 지식 그래프에서 팀과 조직 전체의 지식 시스템으로 확장되는 Graphify의 미래 비전
개인의 지식 그래프에서 팀과 조직 전체의 지식 시스템으로 확장되는 Graphify의 미래 비전


마무리

Graphify는 AI 코딩 어시스턴트가 코드를 이해하는 방식을 근본적으로 바꾸는 도구입니다. 파일을 매번 처음부터 읽는 대신 한 번 구축한 지식 그래프를 반복 활용하여 71.5배의 토큰 절감을 달성하고, 모든 관계에 신뢰도를 태깅하여 AI가 발견한 것과 추측한 것을 명확히 구분합니다. pip install graphifyy && graphify install 한 줄로 시작할 수 있으며, /graphify . 명령 하나로 프로젝트 전체의 지식 그래프가 생성됩니다. Claude Code와의 통합(PreToolUse Hook + CLAUDE.md + MCP 서버)을 통해 일상 개발에서 AI가 자동으로 구조를 먼저 파악하고 탐색하는 워크플로우를 구현할 수 있습니다.

 

Karpathy가 제시한 "LLM을 사서로 활용하라"는 통찰은 Graphify를 통해 실행 가능한 도구로 구체화되었습니다. RAG가 "매번 서점에서 책을 다시 찾는" 방식이라면, Graphify는 "사서가 도서관 전체의 지도를 만들어 두는" 방식입니다. 코드베이스가 커질수록, 멀티모달 자료가 많아질수록, 프로젝트 기간이 길어질수록 이 차이는 더욱 극명해집니다. 지식 그래프 기반의 코드 이해는 특정 도구의 유행이 아닌, AI 코딩 어시스턴트가 진화하는 구조적 방향이 될 것입니다.


참고 자료