멀티 디바이스 동기화 + Claude Code Stop 훅으로 지식 저장소 완성하기
이전 편에서 만든 것
지난 포스트에서 Web Clipper → raw/ → Claude 자동 ingest → wiki 페이지 생성 파이프라인을 구축했습니다. 이번 편에서는 두 가지를 추가합니다:
- GitHub 연동 — 여러 기기에서 위키 동기화
- Claude Code Stop 훅 — 대화 내용 자동 저장
Part 1 — GitHub 연동으로 멀티 디바이스 동기화
llm-wiki 폴더는 마크다운 파일만으로 구성되어 있어 Git으로 완벽하게 동기화됩니다. 맥북, 노트북, 데스크탑 어디서든 같은 위키를 사용할 수 있습니다.
1-1. .gitignore 생성
node_modules와 로그 파일은 GitHub에 올리지 않습니다.
# D:\llm-wiki\.gitignore node_modules/ watcher.log *.log ~$*.docx raw/test*.md
1-2. GitHub 저장소 생성
GitHub.com → New repository → 이름: llm-wiki → Private 선택 → Initialize 체크 해제 → 생성
1-3. 로컬 Git 초기화 및 push (관리자 PowerShell)
cd D:\llm-wiki git init git config –global user.email “your@email.com” git config –global user.name “YourName” git add . git commit -m “init: LLM Wiki 초기 설정” git branch -M main git remote add origin https://github.com/[사용자명]/llm-wiki.git git push -u origin main
Part 2 — Obsidian Git 플러그인으로 자동 동기화
매번 수동으로 git push/pull 하지 않아도 Obsidian Git 플러그인이 10분마다 자동으로 커밋 및 동기화합니다.
2-1. 플러그인 파일 다운로드
.obsidian/plugins/obsidian-git/ 폴더를 만들고 GitHub 최신 릴리즈에서 세 파일을 다운로드합니다:
$base = “https://github.com/Vinzent03/obsidian-git/releases/download/2.38.3” $dest = “D:\llm-wiki\.obsidian\plugins\obsidian-git” New-Item -ItemType Directory -Force $dest Invoke-WebRequest “$base/main.js” -OutFile “$dest\main.js” Invoke-WebRequest “$base/manifest.json” -OutFile “$dest\manifest.json” Invoke-WebRequest “$base/styles.css” -OutFile “$dest\styles.css”
2-2. 플러그인 활성화
.obsidian/community-plugins.json 파일을 만들어 활성화합니다:
[“obsidian-git”]
2-3. 자동 동기화 설정
.obsidian/plugins/obsidian-git/data.json 에 설정을 저장합니다. 주요 값:
- autoSaveInterval: 10 (10분마다 자동 커밋)
- autoPushInterval: 10 (10분마다 자동 push)
- autoPullOnBoot: true (Obsidian 시작 시 자동 pull)
- autoBackupAfterFileChange: true (파일 변경 후 즉시 백업)
Obsidian을 재시작 후 설정 → 커뮤니티 플러그인 → Obsidian Git 토글 켜기
다른 기기에서 사용하기
맥북이나 다른 PC에서 동일한 위키를 사용하려면:
# 1. 저장소 클론 git clone https://github.com/[사용자명]/llm-wiki.git cd llm-wiki # 2. 의존성 설치 npm install # 3. Claude CLI 설치 및 로그인 npm install -g @anthropic-ai/claude-code claude login # 4. watcher 실행 node watch.js
이후 Obsidian에서 클론한 폴더를 Vault로 열면 완료입니다.
Part 3 — Claude Code Stop 훅으로 대화 자동 저장
Web Clipper로 클리핑한 내용뿐 아니라 Claude Code와의 대화 내용도 위키에 자동으로 저장할 수 있습니다. Claude Code의 Stop 훅을 활용합니다.
Stop 훅이란?
Claude Code가 답변을 완료할 때마다 자동으로 실행되는 스크립트입니다. 이를 활용해 대화 transcript를 읽어 raw/ 폴더에 마크다운으로 저장합니다.
3-1. save-chat.js 스크립트 생성
D:\llm-wiki\save-chat.js 파일을 만듭니다. 핵심 로직:
// stdin으로 { session_id, transcript_path } 수신 process.stdin.on(‘end’, () => { const data = JSON.parse(input); const transcript = JSON.parse(fs.readFileSync(data.transcript_path)); // 대화를 마크다운으로 변환 // raw/날짜-chat-제목.md 로 저장 // watcher가 감지 → 자동 ingest });
3-2. ~/.claude/settings.json 에 훅 등록
{ “theme”: “dark”, “hooks”: { “Stop”: [ { “hooks”: [ { “type”: “command”, “command”: “\”C:\\Program Files\\nodejs\\node.exe\” D:\\llm-wiki\\save-chat.js”, “timeout”: 30, “statusMessage”: “Saving chat to wiki…” } ] } ] } }
3-3. 동작 흐름
- Claude Code 답변 완료
- Stop 훅 실행 → save-chat.js 호출
- 대화 transcript를 마크다운으로 변환
- raw/날짜-chat-제목.md 저장
- watcher 감지 → Claude 자동 ingest → wiki 페이지 생성
메시지가 2개 미만인 짧은 대화는 저장하지 않아 노이즈를 방지합니다.
완성된 지식 저장소 구조
모든 설정이 완료되면 다음과 같은 완전 자동화 시스템이 구축됩니다:
입력 소스 1: Web Clipper 클리핑 입력 소스 2: Claude Code 대화 ↓ raw/ 폴더에 자동 저장 ↓ Node.js watcher 감지 (백그라운드) ↓ Claude CLI 자동 ingest ↓ wiki/sources, entities, concepts 생성 ↓ Obsidian Git → GitHub 자동 push ↓ 모든 기기에서 동기화
마치며
이제 웹 서핑, AI와의 대화, 메모 등 모든 지식 활동이 자동으로 위키에 축적됩니다. 클리핑하고 대화할수록 위키는 풍부해지고, GitHub 덕분에 어느 기기에서든 같은 지식 저장소를 사용할 수 있습니다.
인간의 역할은 방향 설정과 좋은 질문, AI의 역할은 모든 정리와 연결. 이것이 LLM Wiki 패턴의 핵심입니다.