친구의 뇌를 빌린다. 내 뇌는 지킨다.
민호는 몇 달째 로컬 LLM-Wiki를 쌓아오고 있었습니다. 인프라 트릭, 힘들게 얻은 설정 노하우, 전부 Markdown으로 개인 레포에 저장해뒀죠. 그러다 벽에 부딪혔습니다 — 자기 지식만으로는 풀 수 없는 Kubernetes 스케줄링 문제였습니다.
병민에게 메시지를 보냈습니다. 병민은 파일 하나를 툭 던져줬습니다. 맥락도 없고, 통합하기도 어렵고, 이미 반쯤 낡은 정보였습니다.
KnowledgeFabric을 쓰는 민호는 대신 대시보드를 열고 병민의 Wiki에 연결합니다. 클릭 한 번에 병민의 k8s/ 노드들이 민호의 에디터 사이드바에 나타납니다. 민호의 레포에 복사된 것도 아니고, git 히스토리를 오염시키는 것도 아닙니다. 읽기 전용 네트워크 드라이브처럼 그냥 거기 있는 것입니다. 민호는 읽고, 자기 언어로 정리해서 my-k8s-strategy.md를 씁니다. 원본을 역링크로 연결한 채로. 20분 만에 문제가 해결됩니다.
대시보드에는 이렇게 표시됩니다: "이번 주 병민의 지식을 활용해 해결한 문제 3건." 민호는 감사 알림을 보냅니다. 병민은 더 많은 것을 공유하기 시작합니다.
이것이 KnowledgeFabric입니다.
KnowledgeFabric은 친구의 큐레이션된 LLM-Wiki 지식을 내 로컬 환경으로 바로 빌려올 수 있는 경량 브리지입니다. 파일을 복사하지 않아도 되고, git 히스토리를 오염시키지 않아도 되며, 친구에게 작업 방식을 바꾸라고 요청할 필요도 없습니다.
내 지식은 내 것. 친구 지식은 친구 것. 연결 그 자체가 제품입니다.
| # | 가설 | 검증 지표 |
|---|---|---|
| A | 개인형 LLM-Wiki 환경이 파편화될 것이며, 연결 수요가 폭증할 것이다 | '친구 연결' 요청 빈도 |
| B | 파편화된 지식을 그래프로 연결하는 것이 단순 검색보다 가치 있을 것이다 | LLM 답변에서 외부 지식 활용률 |
| C | '지식 불균형 경고'와 선택적 공유가 심리적 장벽을 낮출 것이다 | 공유 수락률 |
| D | Raw 데이터 동기화 없이 MCP 기반 실시간 쿼리가 효율적일 것이다 | 로컬↔원격 지식 조회 latency + 정합성 |
| E | Auto-Ingest된 데이터는 Insight 품질을 떨어뜨린다 — 수집보다 큐레이션이 낫다 | 수동 편집 노드 vs. 자동 수집 노드의 실제 참조 횟수 |
| F | 지식의 가치는 양이 아니라 맥락에 비례한다 | 생성 답변 품질 + 사용자 피드백(좋아요/수정) |
┌─────────────────────────────────────────────────────┐
│ WebApp │
│ 대시보드 · 공유 설정 · 알림 · 그래프 뷰 │
└───────────────────┬─────────────────────────────────┘
│ OAuth / 메타데이터만 처리
┌───────────────────▼─────────────────────────────────┐
│ Backend │
│ 인증(GitHub OAuth) · 접근 토큰 매핑 │
│ Raw 데이터 미저장 — 지식 주권은 각 사용자에게 │
└───────────────────┬─────────────────────────────────┘
│ MCP 프로토콜
┌───────────────────▼─────────────────────────────────┐
│ MCP Bridge │
│ Local MCP — 내 llm-wiki 읽기 │
│ Remote MCP — 친구 레포를 가상 마운트으로 읽기 │
│ 제공 도구: list_shared_nodes · read_shared_node · │
│ search_shared_knowledge │
└───────────────────┬─────────────────────────────────┘
│ 온보딩
┌───────────────────▼─────────────────────────────────┐
│ Skills │
│ CLI: MCP 설치 · GitHub OAuth 로그인 · │
│ index.md 노드 자동 등록 │
└─────────────────────────────────────────────────────┘
지식 흐름: 친구의 데이터는 친구의 레포에 그대로 존재합니다. MCP가 필요할 때만 가상 shared/ 네임스페이스로 불러옵니다. Obsidian, VS Code, 로컬 LLM 클라이언트 모두 호환됩니다. 커밋 없음. 충돌 없음. 연결 해제 = 즉시 삭제.
| 역할 | 담당 | 스택 | 목표 |
|---|---|---|---|
| Frontend | — | Next.js + shadcn/ui + Vercel | 대시보드 UI: 친구 목록, 공유 노드 목록, 참조 그래프 |
| Backend | — | Supabase(Auth/DB) + GitHub API | GitHub OAuth, 접근 토큰 매핑, 공유/알림 API |
| LLM_Wiki | — | Python + MCP SDK | 로컬 index.md 파서, 원격 fetch, shared/ 동기화 데몬 |
| 시간 | Frontend | Backend | LLM_Wiki |
|---|---|---|---|
| 0~1h | 레이아웃 + 대시보드 뼈대 | GitHub OAuth + DB 세팅 | index.md 파서 + 노드 구조화 |
| 1~2h | 친구 목록 뷰 + 상태 관리 | 공유 노드 목록 조회 API | 원격 MCP fetch 로직 |
| 2~3h | 불균형 경고 UI + 그래프 | 알림 + 공유 상태 변경 API | shared/ 폴더 동기화(읽기 전용) |
- 연결 — 민호가 대시보드 URL로 래영을 친구로 등록
- 공유 — 래영의
index.md가 민호의 대시보드에 공유 노드로 표시 - 참조 — 민호가 노드 클릭 →
~/shared/laeyoung/폴더에 파일 생성 - 시각화 — 대시보드 그래프에
민호 → 래영지식 엣지 표시
MLP 범위 밖입니다. 나중을 위해 파킹:
- 신뢰도 점수 — 자동 수집 노드에
Unverified태그 부여, 신뢰도 기반 Weighted RAG - 지식 수명 주기 관리 — 연결성 낮은 자동 수집 노드 정기 정리
- CC 라이선스 상호성 — "내 것 빌렸으면 너도 공개해" 공유 정책 강제
- 자동 동기화 데몬 — 수동 트리거 없이
shared/자동 최신화 - Obsidian 플러그인 — 파일 시스템 sync 없이 네이티브 사이드바 통합
GitHub App 불필요. GitHub OAuth + PAT로 충분합니다. 이 규모에서 GitHub App은 설치 오버헤드만 늘릴 뿐 실질적 이점이 없습니다.
백엔드에 Raw 데이터 미저장. 백엔드는 인증 토큰과 메타데이터만 저장합니다. 지식 주권은 각 사용자에게 있습니다 — 친구의 데이터는 서버에 복사되지 않습니다.
git clone 대신 가상 마운트. 친구의 파일은 .gitignore에 등록된 shared/{이름}/ 디렉토리에 위치합니다. 내 git 히스토리는 깨끗하게 유지됩니다. 친구 연결 해제 시 파일이 즉시 삭제됩니다.
index.md가 진실의 단위. 모든 llm-wiki에 기본으로 포함됩니다. 이 파일 하나만 잘 가져오면 친구의 지식 그래프를 매핑하기에 충분합니다 — 레포 전체를 크롤링할 필요가 없습니다.