[portfolio](https://geonwoo.kim/ko/portfolio) › 도구와 오픈소스

# wiki-island · 벤더 중립 AI 메모리

https://geonwoo.kim/ko/portfolio/wiki-island

기간: 2026.11 — 현재

AI 도구마다 기억을 따로 쌓지 않고, 특정 회사에 묶이지 않는 기억 하나를 여러 도구가 함께 쓰도록 만든 오픈소스입니다. 기억은 내 컴퓨터의 Markdown 폴더에 저장됩니다. 저장·검색·읽기에는 모델도 네트워크도 쓰지 않습니다.

모델 호출 없이 MCP 도구 15개로 개발 도구 10곳에 연결

- [github](https://github.com/takealook97/wiki-island)

팀: 1인

역할: 설계 · Rust 개발

Rust · SQLite FTS5 · MCP · Tokio · Git · Markdown

- MCP 도구 15개로 하는 검색·읽기·기록·수정·보관·복원
- wi setup 한 번으로 Claude Code·Codex·Cursor 등 AI 앱 10종 자동 연결
- 띄어쓰기 없는 두 글자 한국어도 찾는 SQLite FTS5 검색
- Git으로 남기는 변경 이력과 이전 버전 복원
- Obsidian 폴더와 함께 쓰기, PDF·Word·PowerPoint·CSV·이미지 가져오기
- 백그라운드 서비스가 맡는 편집 반영, 색인 복구와 정리

## 망가질 수 있는 색인

문제: 검색 색인을 원본처럼 다루면 색인이 손상되거나 기기 사이에서 동기화될 때 기억을 잃을 수 있습니다.

해결: Markdown 파일을 원본으로 두고, SQLite 색인은 기기마다 따로 두는 캐시로 분리했습니다. 색인이 없거나 손상되면 파일을 직접 훑어 찾고, 색인은 다시 만듭니다. 색인을 지워도 기억은 그대로 남습니다.

## 저장 중에 끊기거나 겹친 편집

문제: 여러 AI 도구가 같은 노트를 동시에 고치거나 저장 중에 프로세스가 끊길 수 있었습니다. 그러면 오래된 내용으로 덮어쓰거나 저장한 내용을 잃을 수 있었습니다.

해결: 쓰기마다 호출자가 기대한 체크섬을 확인해 오래된 쓰기는 거부합니다. 임시 파일을 디스크에 쓴 뒤 시작 기록을 남기고 파일을 바꿔 넣고, 끝 기록을 남깁니다. 중간에 끊긴 작업은 이 기록으로 복구합니다. 파일을 원자적으로 바꿔 넣을 수 있는 플랫폼에서는 동시에 들어온 편집을 충돌 사본으로 남깁니다.

## 두 글자 한국어 검색

문제: 띄어쓰기로 단어를 나누는 기본 검색으로는 문장 속 '결제', '환불' 같은 두 글자 한국어를 찾기 어려웠습니다.

해결: 기본 토크나이저는 그대로 두고, 띄어쓰기가 없는 문자를 두 글자씩 끊어 담는 색인 열을 더했습니다. 여러 낱말 검색은 모든 낱말이 맞는 결과를 먼저 보이고, 남은 자리를 순위 매긴 부분 일치로 채웁니다. 결제, 환불 같은 두 글자 검색과 한영이 섞인 검색으로도 의도한 노트를 찾습니다.

## 동기화 폴더 속 Git 이력

문제: iCloud Drive 같은 동기화 서비스는 파일을 하나씩 보냅니다. 폴더 안의 Git 이력이 일부만 또는 순서가 뒤바뀐 채 전달될 수 있습니다.

해결: 동기화 폴더 안에서는 Git 이력을 기기별 외부 폴더에 두고, 노트 폴더에는 Markdown만 남깁니다.


[herdr-cockpit · orch 작업을 보는 Herdr 레이아웃과 모드](https://geonwoo.kim/ko/portfolio/herdr-cockpit) · [orch · 멀티 에이전트 오케스트레이터](https://geonwoo.kim/ko/portfolio/orch)
