AI로 개인 지식 관리 시스템을 만들어봤더니..
페인 포인트
텔레그램에 아이디어를 적고, Obsidian에 메모하고, LinkedIn에 글을 쓴다.
2주간 25개의 노트가 쌓였는데, 3주 전 적은 생각이 오늘 읽은 기사와 연결된다는 걸 발견하지 못한 채 흩어져 있었다.
사람의 두뇌는 연결을 잘 하지만, 기억은 못 한다.
그래서 두 가지 도구를 적용해봤다.
1. LLM Wiki — AI 사서가 내 지식을 정리한다
뭔가?
Karpathy(전 OpenAI/Tesla AI 리더)가 올해 공유한 개인 지식 관리 패턴.
핵심은 “검색하지 말고 컴파일하라”.
우리가 아는 방식:
- 그냥 저장 — 폴더에 넣고 필요할 때 찾는다 (Obsidian, Notion)
- RAG — AI가 질문할 때마다 관련 문서를 검색해서 답한다
LLM Wiki는 제3의 접근:
- 저장할 때 AI가 미리 정리해둔다
3계층 구조
┌─────────────────────────────────────────┐
│ Raw Sources (원본) │
│ 논문, 기사, 메모, 아이디어 — 그냥 던져넣음 │
│ 규칙: 인간이 쓰고, LLM은 읽기만 │
├─────────────────────────────────────────┤
│ Wiki (컴파일된 지식) │
│ LLM이 원본을 읽고 요약·연결·구조화 │
│ 규칙: LLM이 쓰고, 인간은 읽기만 │
├─────────────────────────────────────────┤
│ Schema (규칙) │
│ 위키를 어떻게 구조화할지의 규칙 │
│ 인간과 LLM이 함께 진화시킴 │
└─────────────────────────────────────────┘
소유권의 교차 구조: Raw는 내가 쓰고 AI가 읽는다. Wiki는 AI가 쓰고 내가 읽는다. 이 분리가 원본 오염을 방지한다.
3가지 워크플로우
| 워크플로우 | 동작 | 효과 |
|---|---|---|
| Ingest | 새 자료 추가 → 위키 10-15페이지 자동 업데이트 | 한 번 넣으면 관련 페이지가 알아서 갱신 |
| Query | 질문 → 위키에서 답변 → 좋은 답변은 위키 페이지로 승격 | 질문할수록 위키가 풍부해짐 |
| Lint | 주기적 점검 → 모순 탐지, 고아 페이지 발견, 연결 보완 | 위키 품질이 자가 개선됨 |
자기강화 루프: 질문이 위키를 풍부하게 하고, 풍부한 위키가 더 나은 답을 만든다.
Karpathy 실제 수치
하나의 연구 주제에 ~100편의 문서 → ~400,000 단어의 위키로 컴파일.
개인 위키가 죽는 이유는 유지보수 비용인데, 이 비용을 LLM에게 전가하여 “유지보수 비용 ≈ 0”인 시스템.
RAG와의 비교
| RAG | LLM Wiki | |
|---|---|---|
| 언제 비용 발생? | 질문할 때마다 (Read-heavy) | 저장할 때 한 번 (Write-heavy) |
| 관계 표현 | 암묵적 (벡터 유사도) | 명시적 (마크다운 링크) |
| 질문 반복 시 | 매번 전체 검색 | 이미 정리된 위키 참조 |
| 데이터 쌓일수록 | 검색 비용 증가 | 위키가 풍부해짐 (복리) |
2. Graphify — AI가 숨겨진 연결을 지도로 그린다
뭔가?
파일들 사이의 개념과 관계를 **지식 그래프(노드-엣지)**로 추출하는 도구.
LLM Wiki가 사서(자료를 정리하고 백과사전을 만드는 역할)라면,
Graphify는 X-ray(문서들을 투시해서 숨겨진 구조와 연결을 드러내는 역할).
동작 원리
Pass 1 (결정론적, LLM 불필요)
코드 파일 → tree-sitter AST로 구조 추출
Pass 2 (확률론적, LLM 병렬)
문서/이미지 → Claude 서브에이전트가 개념·관계 추출
↓ 두 결과를 병합
NetworkX 그래프 빌드 → Leiden 클러스터링 (임베딩 불필요)
핵심 특징
관계 신뢰도 3단계 분류
- EXTRACTED: 소스에서 직접 발견 (인용, 참조 등) — 확실한 관계
- INFERRED: LLM이 추론 (0.0~1.0 신뢰도 점수) — 합리적 추론
- AMBIGUOUS: 불확실 — 검토 필요 플래그
자동 발견 기능
- God Node: 모든 것이 연결되는 허브 개념 → “이 개념이 전체를 관통한다”
- Surprising Connection: 타입이 다른 노드 간 예상 밖의 연결 → 콘텐츠 소재 후보
- Community(클러스터): 관련 개념들의 자동 그룹핑
LLM Wiki와의 차이
| LLM Wiki | Graphify | |
|---|---|---|
| 본질 | 지식을 문서로 정리하는 사서 | 지식 간 관계를 추출하는 X-ray |
| 산출물 | 마크다운 위키 (사람이 읽음) | 지식 그래프 JSON (기계가 쿼리) |
| 관심사 | ”이 자료가 무엇을 말하는가" | "이 자료들이 어떻게 연결되는가” |
| 강점 | 종합·요약·서사화 | 관계 발견·패턴 탐지 |
같이 쓰면: Graphify가 **뼈대(구조)**를 만들고, LLM Wiki가 그 위에 **살(서사)**을 붙인다.
3. 실제 시뮬레이션 — 데모
파이프라인
Raw 노트 25개 (흩어진 메모)
↓ LLM Wiki (사서)
Wiki 17페이지 (구조화된 백과사전)
↓ Graphify (X-ray)
지식 그래프 (23노드, 80엣지, 4커뮤니티)
Raw → Wiki 변환 결과
| Raw (원본) | Wiki (컴파일) | |
|---|---|---|
| 파일 수 | 25개 | 17개 |
| 단어 수 | 3,684 | 4,410 (+20%) |
| 성격 | 날짜별 흩어진 메모 | 주제별 구조화된 백과사전 |
Wiki가 원본보다 20% 더 큰 이유: 단순 요약이 아니라 종합·비교·연결이 추가되었기 때문.
Wiki 폴더 구조와 활용법
wiki/
├── index.md ← 목차. "뭐가 있지?" 할 때 첫 진입점
├── entities/ ← 도구·사람·서비스별 페이지
│ ├── AI-에이전트.md "AI 에이전트가 뭐고 어디서 언급됐지?"
│ ├── 프롬프트-설계.md "프롬프트 관련 내용 모아보기"
│ ├── RAG.md "RAG 개념 정리 + 관련 노트"
│ ├── Obsidian.md
│ ├── LLM-도구.md
│ ├── 멘토링.md
│ └── 링크드인.md
├── concepts/ ← 추상 개념별 페이지
│ ├── 학습-루프.md "학습 루프가 AI·멘토링·커리어에 각각 어떻게?"
│ ├── 커리어-전환.md "커리어 관련 생각들의 흐름"
│ ├── 자동화와-습관.md "자동화와 습관의 교차점"
│ ├── 딥워크와-생산성.md
│ ├── 포트폴리오-전략.md
│ └── 에듀테크와-AI-교육.md
├── comparisons/ ← 대조 분석
│ ├── 단일-에이전트-vs-멀티-에이전트.md
│ └── 자동화-vs-수동.md
└── log.md ← 처리 기록. "언제 뭘 넣었지?" 추적용
언제 뭘 보나?
| 상황 | 보는 곳 |
|---|---|
| ”요즘 내가 뭘 생각하고 있지?” | index.md → 주제별 분포 확인 |
| ”AI 에이전트에 대해 내가 뭘 알고 있지?” | entities/AI-에이전트.md |
| ”학습에 대한 내 관점이 어떻게 변했지?” | concepts/학습-루프.md |
| ”두 가지 접근을 비교하고 싶다” | comparisons/ |
| ”이 노트가 언제 처리됐지?” | log.md |
Graphify 출력 구조와 활용법
graphify-out/
├── graph.html ← 브라우저에서 열기. 노드 클릭·줌·검색
├── graph.json ← 기계가 쿼리하는 원본 데이터
├── GRAPH_REPORT.md ← God Node, Surprising Connection, 제안 질문
└── obsidian/ ← Obsidian 볼트로 열기
├── 각 노드별 .md 노드 설명 + 연결 목록
├── _COMMUNITY_*.md 커뮤니티별 개요
└── graph.canvas Obsidian Canvas에서 구조화된 레이아웃
언제 뭘 보나?
| 상황 | 보는 곳 | 방법 |
|---|---|---|
| ”전체 구조를 한눈에 보고 싶다” | graph.html | 브라우저에서 열기 |
| ”핵심 개념이 뭐야?” | GRAPH_REPORT.md → God Nodes | 가장 많이 연결된 허브 |
| ”예상 밖의 연결이 있나?” | GRAPH_REPORT.md → Surprising Connections | 콘텐츠 소재 후보 |
| ”이 개념에 뭐가 연결돼?” | /graphify query "개념명" | 터미널에서 쿼리 |
| ”A와 B가 어떻게 이어지지?” | /graphify path "A" "B" | 최단 경로 추적 |
| ”Obsidian에서 탐색하고 싶다” | obsidian/ 폴더를 볼트로 열기 | Graph View 활용 |
Graphify 적용 전/후 비교
| Raw (Graphify만) | Wiki + Graphify | |
|---|---|---|
| 추출된 노드 | 69개 (중복 포함) | 23개 (핵심만) |
| 추출된 엣지 | 158개 | 111개 |
| EXTRACTED 비율 | 87% | 93% |
| 커뮤니티 | 16개 (파편화) | 4개 (명확한 클러스터) |
Wiki를 거치면: 중복 노드가 통합되고, 암묵적 관계가 명시적 링크로 변환되어, 더 깨끗하고 신뢰도 높은 그래프가 만들어진다.
토큰 효율성 실험
동일한 질문 “AI Native 역량이 왜 3개 영역을 관통하는가?”에 대해:
| 전체 파일 읽기 | Graphify 쿼리 | |
|---|---|---|
| 토큰 | ~10,913 | ~2,274 |
| 절감 | — | 79% (4.8배) |
현재 규모(37파일)에서는 4.8배. 파일이 300개가 되면 ~22배, 500개 이상이면 전체 읽기 자체가 불가능.
4. 활용 가이드
시작하기
# 1. Graphify 설치
pip install graphifyy
# 2. 폴더에 Graphify 실행
/graphify ./my-notes
# 3. 결과 확인
open graphify-out/graph.html # 시각화
cat graphify-out/GRAPH_REPORT.md # 리포트
# 4. 질문하기
/graphify query "관심 있는 주제"
/graphify path "개념A" "개념B"
/graphify explain "특정 개념"
LLM Wiki + Graphify 조합 사용법
1단계: Raw 폴더에 자료를 모은다 (메모, 기사, 아이디어)
2단계: LLM Wiki 에이전트가 Wiki로 컴파일 (Ingest)
3단계: Graphify가 Wiki를 그래프로 변환
4단계: 필요할 때 그래프에 질문 (Query)
5단계: 새 자료 추가 시 → 2단계부터 반복 (증분 업데이트)
이런 상황에 써보세요
| 상황 | 활용법 |
|---|---|
| 논문/기사를 많이 읽는데 연결이 안 된다 | Raw에 던져넣고 LLM Wiki → “이 논문과 저 기사의 공통점은?” |
| 프로젝트 회고가 쌓이는데 패턴이 안 보인다 | Graphify → God Node = 반복적으로 등장하는 이슈 |
| 팀 문서가 많은데 누가 뭘 아는지 모른다 | Wiki entities/ → 주제별 전문가 매핑 |
| 글감이 떠오르지 않는다 | Graphify Surprising Connection = 예상 밖의 교차점 = 콘텐츠 시드 |
5. 인사이트
”검색하지 말고 컴파일하라”
RAG는 질문할 때마다 찾는다 → 비용이 질문 수에 비례.
LLM Wiki는 저장할 때 정리한다 → 비용은 저장 시에만, 이후 읽기는 거의 무료.
데이터가 쌓일수록 후자가 압도적으로 유리.
”진짜 가치는 연결의 발견”
25개 노트에서 “학습 루프”라는 개념이 AI 에이전트, 멘토링, 커리어 전환, 에듀테크 4개 영역을 관통한다는 걸 시스템이 알아서 발견했다. 나는 그냥 노트를 적었을 뿐인데.
Karpathy의 표현:
“위키는 계속 업데이트되는 산출물이다. 상호참조는 이미 존재하고, 모순은 이미 표시되어 있다."
"효과가 없을 때 시작해야 한다”
37개 파일에서 4.8배 절감은 별 것 아니다.
하지만 300개가 되면 이 인프라 없이는 불가능해진다.
모든 복리 시스템은 초기에 가치가 안 보인다. 그때 시작하는 게 핵심.