홍승아블로그

LLM Wiki: RAG를 넘어 지식을 미리 정리해 두는 위키 패턴

개요

LLM Wiki는 기획서, 스펙, 회의록 같은 원본 자료를 모아 두면 Claude가 그 내용을 읽고 정리해 하나의 한국어 위키로 만들어 두는 저장소입니다. 사람은 자료를 모으고 질문하는 역할을 맡고, 위키를 실제로 작성하고 관리하는 일은 Claude가 합니다. Andrej Karpathy가 제안한 “LLM Wiki” 패턴을 한국어 기획·지식 관리에 맞게 옮겨 온 구조입니다.

기존 RAG 방식은 질문이 들어올 때마다 원본 더미에서 매번 답을 다시 찾습니다. 정리된 결과가 쌓이지 않기 때문에 같은 자료를 계속 다시 뒤지게 됩니다. LLM Wiki는 자료를 넣는 시점에 한 번 정리해 위키로 만들어 두고, 질문에는 그 위키에서 출처와 함께 답합니다. 핵심 차이는 “지식을 언제 정리하느냐”에 있습니다.

비유하자면 Obsidian이 작업 공간이고, LLM이 그 안에서 일하는 작성자이며, 위키가 완성된 결과물, 원본 자료가 요구사항에 해당합니다.

배경: 왜 이렇게 만드는가

업무와 학습에서 쌓이는 지식 자료는 보통 Confluence, Slack, Notion 같은 여러 도구에 흩어져 있습니다. 필요한 내용을 찾으려면 도구를 옮겨 다녀야 하고, 문서들이 서로 어떻게 이어지는지는 잘 드러나지 않습니다.

이렇게 흩어진 지식을 한곳에 쌓고 서로 연결해 두기 위해, 질문할 때마다 원본을 다시 뒤지는 RAG 대신 LLM Wiki 방식을 택했습니다. 두 방식이 어떻게 다른지와 그 밑에 깔린 Karpathy의 아이디어는 아래 “Karpathy의 LLM Wiki 개념”에서 정리합니다.

Karpathy의 LLM Wiki 개념

핵심 아이디어

기존 RAG 방식의 문제

RAG는 사용자가 질문할 때마다 다음을 반복합니다. 먼저 원본 문서를 벡터 임베딩으로 바꾸고, 질문과 비슷한 문서 조각(chunk)을 찾아, 그 조각을 LLM에 넘겨 답변을 만듭니다. 이 방식은 매번 원본을 다시 읽기 때문에 문서가 많아질수록 검색 정확도가 떨어지고, 각각의 문서 조각은 찾더라도 문서끼리 어떻게 연결되는지에 대한 맥락은 답변마다 새로 잡아야 해서 쉽게 유실됩니다.

LLM Wiki 방식의 해법

LLM Wiki는 정리하는 시점을 자료를 넣는 때로 앞당깁니다. 자료를 넣을 때 LLM이 한 번 읽고 정리해 위키로 “컴파일”해 두고, 이후 질문할 때는 이미 정리되고 교차참조된 위키에서 바로 답합니다. 도서관에 빗대면, RAG는 질문할 때마다 직접 서가에서 원본 책을 찾아 읽는 방식이고, LLM Wiki는 전담 사서가 새 책이 들어올 때마다 읽어 위키에 정리하고 관련 문서끼리 미리 링크를 걸어 두는 방식입니다.

두 방식을 정리 시점을 기준으로 비교하면 다음과 같습니다. 핵심 차이는 “언제 지식을 정리하느냐”에 있습니다.

구분 RAG LLM Wiki
정리 시점 질문할 때마다 정리 자료를 넣을 때 한 번 정리
반복 여부 매번 원본을 다시 검색 정리된 위키를 재사용
문서 사이 맥락 답변마다 새로 잡아 쉽게 유실 교차참조로 축적되어 유지
비유 질문마다 서가에서 원본 책을 찾아 읽기 사서가 새 책을 미리 위키에 정리해 둠

Karpathy의 핵심 비유: “프로그래머와 코드베이스”

Karpathy는 이 관계를 프로그래머와 코드베이스에 빗댔습니다. 프로그래머가 요구사항을 받아 코드를 작성하고 유지보수하듯, LLM이 원본 자료를 받아 위키를 작성하고 유지보수합니다.

요소 역할
LLM 프로그래머. 자료를 읽고 위키를 쓰고 고친다.
위키 코드베이스. 계속 유지보수되는 산출물.
원본 자료 (Raw) 요구사항과 스펙. 넣기만 하고 고치지 않는 입력.
운영 규칙 (Schema) 코딩 컨벤션. 위키를 어떤 규칙으로 관리할지 정한다.

3계층 아키텍처

LLM Wiki는 세 계층으로 이뤄집니다. 각 계층을 도서관에 빗대면 다음과 같습니다.

계층 설명 비유
원본 자료 (Raw) 사용자가 넣는 원본 문서. 수정하지 않음 도서관의 원본 책
위키 (Wiki) LLM이 작성하고 관리하는 마크다운 페이지 나무위키 문서
운영 규칙 (Schema) 위키 구조와 워크플로를 정의하는 설정 문서 위키 편집 가이드라인

실제 폴더 구성은 아래 “저장소 구조”를 참고하세요.

3가지 핵심 운영

위키는 자료를 넣고(Ingest), 질문하고(Query), 점검하는(Lint) 세 가지 운영으로 돌아갑니다. 각 운영에서 사람과 Claude의 역할이 나뉘어집니다.

운영 설명 역할 분담
Ingest (자료 넣기) 새 자료를 읽어 위키 페이지로 정리 사용자가 자료를 넣으면 Claude가 정리
Query (질문하기) 위키에서 답을 찾아 출처와 함께 응답 사용자가 질문하면 Claude가 위키 근거로 답변
Lint (헬스체크) 위키의 일관성과 완전성 점검 Claude가 점검하고 사용자 승인 후 정리

저장소 구조

세 개의 계층으로 나뉩니다.

위치 역할
raw/ 원본 자료를 그대로 보관하는 곳. 기획서, 스펙, 회의록, 이미지, URL 등. 한 번 들어오면 바꾸지 않는 불변 영역이며, 사용자가 관리합니다. Claude는 읽기만 합니다.
wiki/ 정리된 위키 페이지가 모이는 곳. Claude가 작성하고 유지합니다. 사람은 읽기 중심으로 사용합니다. 하위 폴더 없이 평평한 구조로 둡니다.
wiki/index.md 위키 전체 목차. 카테고리별로 페이지를 정리합니다.
wiki/log.md 작업 이력. 위키가 바뀔 때마다 한 줄씩 쌓입니다.
CLAUDE.md 운영 규칙 문서. 자료를 넣고(Ingest), 질문하고(Query), 점검하는(Lint) 흐름과 페이지 작성 규칙을 정의합니다.

동작 방식

자료가 위키가 되기까지는 세 가지 작업 모드를 거칩니다.

자료 넣기 (Ingest)

새 자료를 위키에 반영하는 과정입니다. Claude는 원본을 읽고, 핵심 요약 두세 개를 먼저 사용자에게 보여 준 뒤, 중복 여부를 확인해 새 페이지를 만들거나 기존 페이지를 보강합니다. 이때 원본 문장은 임의로 다시 쓰지 않고, 요약만 페이지 맨 앞에 따로 둡니다. 관련 페이지끼리는 위키링크로 연결하고, 작업 내용은 목차와 이력에 함께 기록합니다.

질문하기 (Query)

위키에 정리된 내용을 근거로 답을 받는 과정입니다. Claude는 목차에서 관련 페이지를 찾아 읽고, 위키에 적힌 내용만을 근거로 출처와 함께 답합니다. 위키에 근거가 없으면 지어내지 않고 “위키에 해당 내용이 없습니다”라고 분명히 알려 줍니다.

점검하기 (Lint)

위키가 쌓이면서 생기는 문제를 주기적으로 정리하는 과정입니다. 어디서도 링크되지 않은 고아 페이지, 깨진 링크, 중복된 내용, 페이지 간 모순 등을 찾아 보고하고, 승인을 받아 정리합니다.

운영 흐름도

자료가 위키가 되고, 위키가 답이 되는 전체 흐름은 다음과 같습니다.

[사용자]
   │  ① 자료 넣기 /ingest
   ▼
[raw/ 원본 자료 (불변)]
   │  ② Claude가 원본을 읽어 정리
   ▼
[wiki/ 정리된 지식]  ◄─────────┐
   │  ③ 사용자가 질문 /query        │
   ▼                              │ ⑤ 점검 /lint 로
[Claude]                          │    위키를 정리·보강
   │  ④ 위키를 근거로 출처와 함께 답변  │
   ▼                              │
[사용자]  ───────────────────┘

예를 들어 “결제는 어떻게 적용되나요?”라고 물으면, Claude는 관련 위키 페이지를 찾고 위키링크를 따라가며 확인한 뒤 “[[결제-기능정의서]]에 따르면 결제 시 쿠폰 통화와 결제 통화가 일치해야 합니다”처럼 출처와 함께 답합니다. 위키에 근거가 없으면 지어내지 않고 “위키에 해당 내용이 없습니다”라고 답합니다.

자료 넣기(Ingest) 상세 흐름

사용자가 자료를 넣으면 Claude가 원본을 읽고 위키 페이지로 정리하기까지의 단계입니다.

[사용자]
   │  자료를 raw/에 넣거나 URL을 /ingest에 전달
   ▼
[Claude]
   ① 원본을 읽는다 (raw/는 수정하지 않음)
   ② wiki/index.md로 중복 여부를 판단
   ③ 새 위키 페이지를 생성하거나 기존 페이지를 보강
   ④ [[위키링크]]로 관련 페이지를 교차참조
   ⑤ index.md에 등록하고 log.md에 기록
   │
   ▼
[wiki/ 정리된 지식 갱신]

질문하기(Query) 상세 흐름

사용자가 질문하면 Claude가 위키를 찾아 출처와 함께 답하는 단계입니다.

[사용자]  "결제는 어떻게 되나요?"
   │
   ▼
[Claude]
   ① wiki/에서 관련 페이지를 검색
   ② [[위키링크]]를 따라가며 관련 페이지를 추가 확인
   ③ 위키 내용만 근거로 답변하고 출처 페이지를 링크로 표시
   │
   ▼
[사용자]  "[[결제-기능정의서]]에 따르면 결제 시
          결제 통화가 일치해야 합니다"

※ 위키에 근거가 없으면 "위키에 해당 내용이 없습니다"라고 답합니다.

핵심 운영 규칙

위키의 신뢰도를 지키기 위해 다음 규칙을 따릅니다.

  • raw/ 폴더는 Claude가 읽기만 하고 절대 수정하지 않습니다.
  • 모든 위키 페이지는 핵심 요약(Takeaway)으로 시작합니다.
  • 위키를 수정할 때마다 log.md에 기록을 남깁니다.
  • 새로 추가한 페이지는 반드시 index.md 목차에 등록합니다. 어디서도 링크되지 않는 고아 페이지를 막기 위해서입니다.
  • 답변은 위키에 적힌 내용만을 근거로 합니다. 근거가 없으면 없다고 답합니다.

사용자가 해야 하는 일

이 저장소에서 사용자의 역할은 분명합니다. 위키를 직접 손으로 쓰는 것이 아니라, 좋은 자료를 모으고 정확한 질문을 던지는 것입니다. 위키 작성과 정리는 Claude에게 맡기고, 사용자는 다음 흐름으로 작업하면 됩니다.

  1. 정리하고 싶은 원본 자료를 raw/ 폴더에 넣습니다. 파일을 직접 두거나, 웹 주소를 그대로 전달해도 됩니다. 이미지나 첨부는 raw/assets/ 아래에 둡니다.
  2. 자료를 넣었다면 위키에 반영하도록 요청합니다. 예를 들어 ”raw/회의록.md 를 위키에 정리해 줘” 또는 URL을 함께 전달하면 됩니다. Claude가 먼저 핵심 요약을 보여 주면, 방향이 맞는지 가볍게 확인해 줍니다.
  3. 궁금한 내용은 질문으로 물어봅니다. 위키에 정리된 범위 안에서 출처와 함께 답이 돌아옵니다. 답에 근거가 없다고 하면, 관련 원본을 raw/ 에 더 넣어 주면 됩니다.
  4. 위키가 어느 정도 쌓이면 점검을 한 번씩 요청합니다. 끊어진 링크나 중복, 모순을 정리해 위키를 건강하게 유지할 수 있습니다.

작업할 때 기억해 두면 좋은 점이 두 가지 있습니다. 첫째, raw/ 안의 자료는 진실의 기준이므로 사용자가 관리하고, Claude는 임의로 바꾸지 않습니다. 위키 내용과 원본이 어긋나면 원본이 우선입니다. 둘째, 위키 페이지는 사람이 직접 고치기보다 Claude에게 수정을 맡기는 편이 좋습니다. 모든 변경이 이력에 남아 추적할 수 있도록 설계되어 있기 때문입니다.

적용 사례

온보딩 가이드 — 흩어져 있는 온보딩 자료를 raw/에 모아 위키로 정리해 두면, 신규 입사자가 위키에 질문해 필요한 내용을 빠르게 찾을 수 있습니다. 원본이 바뀌면 위키도 함께 갱신합니다.

표준 문서 관리 — 팀 표준, 프로세스, 기획서, 기술 스펙을 위키로 관리하면 문서 사이의 교차참조와 일관성을 유지할 수 있습니다. 정기적인 점검(Lint)으로 깨진 링크, 중복된 내용, 빠진 교차참조를 잡아냅니다.

규모와 확장

자료가 약 100개, 페이지가 수백 개 수준까지는 목차와 검색만으로 충분히 다룰 수 있습니다. 그보다 더 커지면 페이지 간 관계를 그래프로 시각화하고 탐색하는 보조 레이어를 선택적으로 붙일 수 있습니다.

지식 그래프로 확장하기 (graphify)

위키가 충분히 커져 페이지 사이 관계를 한눈에 보고 싶을 때 graphify를 붙입니다. graphify는 폴더 안의 문서를 분석해 개념과 관계를 뽑아내고, 질의할 수 있는 지식 그래프(JSON, HTML 시각화, 리포트)를 만드는 도구입니다.

확장 흐름

Ingest로 만들어진 위키를 graphify가 그래프로 변환하면, 기존의 텍스트 검색과 위키링크 탐색에 그래프 탐색이 더해집니다.

[raw/ 원본 자료]
   │  Ingest — Claude가 위키로 정리
   ▼
[wiki/ 정리된 지식]
   │  /graphify
   ▼
[graphify-out/]  graph.json · graph.html · REPORT.md
   │  그래프 제공
   ▼
[사용자 질문] 에 답하는 세 가지 경로
   ├─ 텍스트 키워드 검색        (기존 방식)
   ├─ 위키링크 따라가기         (기존 방식)
   └─ 그래프 탐색 BFS/DFS       (graphify)
            │
            ▼
   숨겨진 연결 발견 · 커뮤니티 탐지 · 최단경로 분석

텍스트 위키만 쓸 때와 graphify를 더했을 때의 차이는 다음과 같습니다.

항목 위키만 위키 + graphify
검색 방식 키워드 매칭과 위키링크 따라가기 그래프 탐색(BFS·DFS)과 최단경로 질의
관계 발견 사람이 직접 교차참조를 걸어야 함 관계를 자동으로 추출하고 추론 관계까지 제시
전체 구조 파악 index.md 목차로 카테고리 수준만 인터랙티브 HTML 그래프로 전체 구조 시각화
숨은 연결 사람이 직접 찾아야 함 커뮤니티 탐지로 자동 그룹핑
“A와 B의 관계” 각각 검색한 뒤 교차참조가 있으면 연결 path 명령으로 최단경로를 바로 확인

graphify는 뽑아낸 관계마다 신뢰도를 함께 표시합니다. 원본에 분명히 드러난 관계는 EXTRACTED(1.0), 합리적으로 미루어 짐작한 관계는 INFERRED(0.650.95), 불확실한 관계는 AMBIGUOUS(0.10.3)로 구분해, 어디까지가 명시된 사실이고 어디부터가 추론인지 알 수 있습니다.

세션 안에서 쓰는 주요 명령은 다음과 같습니다.

명령 역할
/graphify ./wiki wiki/ 폴더로 그래프 생성 (출력: graphify-out/)
/graphify ./wiki --update 바뀐 파일만 증분 업데이트
/graphify query "질문" 그래프 기반 질의
/graphify path "A" "B" 두 개념 사이 최단경로
/graphify explain "개념" 특정 개념 설명

그래프 생성과 질의는 Claude Code 세션의 Claude가 직접 처리하므로 별도의 API 키가 필요하지 않습니다. 설치 방법은 아래 “설치 및 시작하기”의 지식 그래프 확장 항목을 참고하세요.


설치 및 시작하기

저장소 주소는 아래와 같습니다.

https://github.com/seungahhong/llm-wiki

이 프로젝트는 Claude Code 위에서 동작합니다. 위키를 작성하고 정리하는 일은 모두 Claude Code 세션 안에서 이뤄지므로, 별도의 서버나 빌드 과정 없이 저장소를 받아서 바로 사용할 수 있습니다.

준비물

  • Git
  • Claude Code (Anthropic 공식 CLI). 설치형 도구이며 한 번 로그인해 두면 됩니다.
  • (선택) Python 3.10 이상과 uv. 지식 그래프 확장 기능을 쓸 때만 필요합니다.

설치 순서

  1. 저장소를 내려받습니다.
git clone https://github.com/seungahhong/llm-wiki.git
cd llm-wiki
  1. 받은 폴더에서 Claude Code를 실행합니다.
claude
  1. Claude Code가 폴더 안의 CLAUDE.md.claude/ 설정을 자동으로 읽어 들입니다. 이때부터 위키 작성 규칙과 전용 커맨드(자료 넣기, 질문하기, 점검하기)가 활성화됩니다. 별도의 의존성 설치는 없습니다.

준비가 끝나면 raw/ 폴더에 정리하고 싶은 자료를 넣는 것부터 시작하면 됩니다.

기본 사용 흐름

저장소를 열었다면 다음 커맨드를 Claude Code 프롬프트에 입력해 사용합니다. 일반 터미널 명령이 아니라 세션 안에서 입력하는 슬래시 커맨드입니다.

커맨드 역할
/ingest raw/파일명 또는 /ingest URL 원본 자료를 읽어 위키 페이지로 정리합니다.
/query 질문 내용 정리된 위키를 근거로 출처와 함께 답합니다.
/lint 고아 페이지, 깨진 링크, 중복, 모순을 점검합니다.

지식 그래프 확장 (선택)

위키가 충분히 커져 페이지 사이 관계를 그래프로 보고 싶을 때만 설치하면 됩니다. 평소 사용에는 필요하지 않습니다.

uv tool install graphifyy
graphify install --project --platform claude

설치 후에는 Claude Code 세션 안에서 /graphify 커맨드로 그래프를 만들고 질의할 수 있습니다. 그래프 생성과 질의는 세션의 Claude가 직접 처리하므로 별도의 API 키가 필요하지 않습니다. 자세한 내용은 저장소의 docs/graphify.md 문서를 참고하면 됩니다.

참고

  • raw/ 폴더의 원본 자료는 진실의 기준입니다. 사용자가 관리하며, 위키 내용과 어긋나면 원본이 우선합니다.
  • 로컬 전용 설정 파일(.claude/settings.json 등)과 그래프 산출물(graphify-out/)은 저장소에 포함되지 않습니다. 새로 받은 폴더에서 그래프 확장을 쓰려면 위 설치 명령을 다시 한 번 실행하면 됩니다.

이 위키를 직접 구성하려면

이 저장소는 Claude Code에 아래와 같은 요청을 주어 만들었습니다. 비슷한 위키를 새로 만들고 싶다면 중괄호 부분을 자신의 상황에 맞게 바꿔 같은 요청을 하면 됩니다.

회사 기획 지식/노하우 위키를 만들어줘.

아래 Karpathy의 LLM Wiki 아이디어를 참고해서 구현해:
https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f

이 프로젝트는 내 업무와 학습에서 쌓이는 지식을 축적하는 나만의 나무위키야.
자료를 넣으면 네가 읽고 정리해서 위키로 만들어주고, 나는 필요할 때 질문하면 돼.

나는 {{나의 직업/역할}}을(를) 하고 있어.
내가 주로 넣을 자료:
- {{자료 유형 1: 예) 개발팀별 표준, 프로세스, 업무 자료}}
- {{자료 유형 2: 예) 제품 개발 기획/디자인 업무 자료}}

이 요청을 받으면 Claude가 운영 규칙 문서(CLAUDE.md), raw/wiki/ 폴더, 목차(index.md)와 이력(log.md)을 자동으로 만들어 줍니다. 이후에는 자료를 넣고 질문하는 평소 흐름으로 위키를 키워 가면 됩니다.

참고 자료

이전글
Claude Code 플러그인 마켓플레이스 구축
다음글
시맨틱(의미 기반) + 키워드 하이브리드 검색 RAG 구축