# Grep은 죽었다: Claude Code가 기억하게 만드는 방법

> Clean Markdown view of GeekNews topic #27239. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27239](https://news.hada.io/topic?id=27239)
- GeekNews Markdown: [https://news.hada.io/topic/27239.md](https://news.hada.io/topic/27239.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-03-06T10:45:01+09:00
- Updated: 2026-03-06T10:45:01+09:00
- Original source: [x.com/artemxtech](https://x.com/artemxtech/status/2028330693659332615)
- Points: 37
- Comments: 11

## Summary

Claude Code의 **세션 간 기억 상실 문제**를 해결하기 위해, 로컬 검색 엔진 QMD와 `/recall` 스킬을 결합한 메모리 시스템을 제안합니다. QMD는 Obsidian 볼트를 인덱싱해 BM25·시맨틱·하이브리드 검색을 지원하며, `/recall`은 시간·주제·그래프 기반으로 과거 세션의 **풀 컨텍스트를 즉시 복원**합니다. 700개 세션을 자동 임베딩하는 파이프라인을 통해, 도구가 바뀌어도 컨텍스트만 유지하면 어떤 AI 에이전트에서도 동일한 워크플로우를 이어갈 수 있는 구조를 보여줍니다.

## Topic Body

- 클로드 코드의 **세션 간 컨텍스트 유실 문제**를 해결하기 위해 로컬 검색 엔진 QMD와 /recall 스킬을 결합한 메모리 시스템 구축  
- QMD는 Obsidian 볼트를 인덱싱하는 **로컬 검색 엔진**으로, BM25·시맨틱·하이브리드 세 가지 검색 모드 지원  
- /recall 스킬은 시간순·주제별·그래프 시각화 세 가지 모드로 과거 세션의 **풀 컨텍스트를 즉시 복원**  
- 700개 세션의 JSONL 대화 기록을 자동 파싱·임베딩하여 QMD 인덱스에 반영하는 **자동화 파이프라인** 구현  
- 도구가 바뀌어도 컨텍스트만 유지하면 어떤 AI 에이전트에서든 활용 가능하다는 **컨텍스트 중심 워크플로우** 제시  
  
---  
  
### 문제: 세션마다 초기화되는 Claude Code  
- Claude Code의 모든 대화는 **제로 상태에서 시작**되며, 3주간 700개 세션을 진행하면서 과거 결정사항과 프로젝트 컨텍스트를 추적하기 어려운 상황 발생  
- 세션 중반에 컨텍스트 한도(60%)에 도달하면 **compact 또는 hand off**가 필요하고, 이 과정에서 결정사항의 절반이 유실  
- 다음 날 작업을 이어가려 할 때 **무엇을 했는지 기억나지 않는 불편함**이 반복됨  
- 기존 방식인 **파일 grep 기반 검색은 확장성이 없음**  
  
### QMD: 볼트 전용 로컬 검색 엔진  
- [QMD](https://github.com/tobi/qmd)는 Shopify CEO **[Tobias Lutke](https://x.com/@tobi)** 가 만든 로컬 검색 엔진으로, Obsidian 볼트를 인덱싱하여 1초 이내에 검색 결과 반환  
- 볼트 폴더별로 QMD **collection**을 매핑(노트, 일일 기록, 세션, 트랜스크립트 등)하여 집중 검색 수행 가능  
- `qmd collection list`, `qmd search "video workflow" -c notes -n 3` 등 단일 명령으로 작동  
- Claude Code의 기본 검색은 **Haiku 서브 에이전트가 모든 파일을 grep**하는 브루트 포스 방식으로, 테스트 결과 3분 소요에 300개 파일 반환, 결과 품질도 낮음  
- QMD 검색은 **즉각적이고 더 정확하며 토큰 소모가 적음** — 서브 에이전트 불필요  
  
### Grep vs BM25 vs 시맨틱 검색  
- **BM25** (`qmd search`): 결정론적 풀텍스트 검색으로, grep처럼 키워드를 매칭하되 각 파일에 점수를 부여   
  — 단어 출현 빈도와 전체 문서 대비 희소성 기반, AI나 임베딩 없이 수학적 연산만 사용  
  - "sleep" 5회 언급된 짧은 노트가 10,000단어 파일에서 1회 언급된 것보다 높은 점수  
- **시맨틱** (`qmd vsearch`): 임베딩 기반으로 정확한 단어가 없어도 **의미로 검색** 가능  
- **하이브리드** (`qmd query`): BM25와 시맨틱을 결합  
- "sleep" 검색 벤치마크 비교:  
  - grep: 200개 파일 반환, `sleep()` 프로그래밍 명령어까지 포함하는 노이즈 다수  
  - BM25: 2초 내에 **수면 품질 실험, 수면 중단 기록** 등 관련 결과 반환  
  - 단, `qmd search "insomnia"`는 볼트에 해당 단어가 없어 결과 0  
  - 시맨틱: "couldn't sleep, bad night" 검색 시 **수년 전 설정한 취침 습관 목표**까지 발견 — 5개 결과 중 4개가 검색어를 포함하지 않음  
  - 하이브리드: sleep quality improvement 89%, sleep interrupted at 3am 51%, health sleep optimization 42%로 **최적 순위** 제공  
- 권장 사용 패턴: 검색의 80%는 **BM25**로 처리(구조화된 노트에 적합), 트랜스크립트와 비정형 메모에는 **시맨틱 검색** 추가  
  
### 시맨틱 검색의 실제 발견 사례  
- "find the days when I was happy and what was the reason" 같은 **비정형 질의**에 Claude가 자동으로 여러 검색을 조합:  
  - `qmd vsearch "happy, grateful, excited"`, `"energy, great day, feeling good"`, `"satisfaction, accomplishment"` 등 복수 검색 실행  
- 수개월간의 일일 노트에서 **의미적 연결**을 발견 — "가장 행복한 날은 무언가를 출시하고 사우나나 9시간 수면으로 좋은 회복을 한 날"이라는 패턴 도출  
  
### /recall 스킬: 작업 시작 전 컨텍스트 로드  
- [/recall](https://memory-artemzhutov.netlify.app/)은 QMD 위에서 작동하는 **Claude Code 스킬**로, **작업 시작 전에 컨텍스트를 자동 로드함**  
- 세 가지 모드 지원:  
  - **temporal**: 날짜 기반 세션 히스토리 스캔 (`/recall yesterday`, `/recall last week`)  
  - **topic**: QMD 컬렉션 대상 BM25 검색 (`/recall topic graph`)  
  - **graph**: 세션과 파일의 **인터랙티브 시각화** (`/recall graph last week`)  
- `/recall yesterday` 테스트 결과: 하루 동안의 **39개 세션을 타임라인으로 재구성** — 각 세션의 시간, 메시지 수, 작업 내용 표시  
- `/recall topic "QMD video"` 결과: 세션과 노트 전체에서 대시보드, 프로덕션 계획, 투두 리스트 등 **관련 파일을 1분 이내에 반환** — 브루트 포스 grep 대비 시간·토큰·결과 품질 모두 우위  
- graph 모드는 **세션을 컬러 블롭으로 시각화**하여 오래된 세션은 흐리게, 최근 세션은 보라색으로 하이라이트 — 파일은 goals, research, voice, docs, content, skills 등 **타입별 클러스터링**  
- 예시: 점심 장소 탐색 세션을 일주일 후 그래프에서 발견하고, 해당 파일 경로를 Claude Code에 복사하여 **이전 대화를 이어서 작업** 가능  
  
### 700개 세션의 자동 인덱싱  
- Claude Code는 모든 대화를 **JSONL 파일로 로컬 저장** — 3주간 700개 세션 축적  
- 원본 파일에는 tool uses, 시스템 프롬프트, role 등이 포함되어 있어 이를 파싱하여 **클린 마크다운(실제 사용자 메시지와 시그널)** 으로 변환 후 QMD 인덱스에 임베딩  
- 터미널 종료 시 **자동 hook이 실행**되어 세션을 QMD에 export·embed — 별도 수동 작업 없이 항상 최신 인덱스 유지  
  
### 실행하지 않은 아이디어 발견  
- "find the ideas that I have never acted on" 검색 시 Claude가 QMD 결과를 종합하여 발견한 내용:  
  - 10월 19일 — **PhD 작성 대시보드** 구축 계획이 있었으나 실행하지 않음  
  - **일러스트레이션 기반 앱** 아이디어가 있었으나 후속 조치 없음  
  - **Obsidian 워크플로우 화면 녹화** 아이디어가 있었으나 실행하지 않음  
- 수개월 전에 작성하고 완전히 잊은 내용들이 재발견됨  
- 모든 임베딩은 **로컬에 저장**  
  
### 컨텍스트 중심 워크플로우  
- 노트가 Obsidian 안에 갇혀 있지 않고 **실제 목표 달성에 활용되는 유용한 컨텍스트**로 전환  
- 도구는 변하지만(새 모델, 새 에이전트) **컨텍스트만 유지하면** Claude Code, Codex, Gemini CLI 등 어디서든 작동 가능  
- 메모리 레이어는 **스킬 형태로 전체 스택에서 작동**  
- 실제 구성: **Obsidian Sync**로 Mac과 상시 가동 Mac Mini 간 볼트 동기화, Mac Mini에서 **OpenClaw가 24/7 실행** — 폰에서 OpenClaw 접속 시 동일한 볼트·QMD 인덱스·스킬을 어디서나 사용 가능  
- 전체 스택 구조:  
  - 하단: **Obsidian Vault**  
  - 중간: **QMD Search**  
  - 상단: **Claude Code / OpenClaw**  
  - 컨텍스트가 아래에서 위로 흐르는 구조  
  
* [/recall 설치하기 https://memory-artemzhutov.netlify.app/ ](https://memory-artemzhutov.netlify.app/)  
* [전체 데모 영상 보기 - 42분, 유튜브 Making Claude Code Actually Remember Things ](https://www.youtube.com/watch?v=RDoTY4_xh0s)

## Comments



### Comment 52504

- Author: mammal
- Created: 2026-03-06T12:09:31+09:00
- Points: 5

요즘 왜이리 죽는게 많아요

### Comment 52511

- Author: pjs102793
- Created: 2026-03-06T14:08:04+09:00
- Points: 1
- Parent comment: 52504
- Depth: 1

ㅋㅋㅋㅋㅋ

### Comment 52531

- Author: t7vonn
- Created: 2026-03-06T21:11:46+09:00
- Points: 3

grep은 죽었다. ripgrep을 쓰자

### Comment 52503

- Author: galadbran
- Created: 2026-03-06T12:06:49+09:00
- Points: 2

qmd 써볼까 싶어서 AI에게 조사시켰더니 임베딩 쪽은 괜찮은데 BM25 와 쿼리확장 쪽은 한국어 지원이 안좋아서 비추천하네요...

### Comment 52558

- Author: alstjr7375
- Created: 2026-03-07T16:31:55+09:00
- Points: 2
- Parent comment: 52503
- Depth: 1

거의 대부분 BM25에서도 그렇습니다.  
따라서 형태소 분석기를 함께 쓰는게 좋아요.  
https://github.com/bab2min/Kiwi

### Comment 52557

- Author: cshj55
- Created: 2026-03-07T14:42:06+09:00
- Points: 1
- Parent comment: 52503
- Depth: 1

이거 팩트체크 해보니까 정확한 증거는 없는거 같은데. 혹시 다른 분들의 경험은 혹시 있으실까요?

### Comment 53583

- Author: dalinaum
- Created: 2026-03-23T00:57:22+09:00
- Points: 1
- Parent comment: 52557
- Depth: 2

BM25가 단어 위주의 검색이니 galadbran님의 의견은 make sense한 것 같습니다.

### Comment 52725

- Author: versionx
- Created: 2026-03-10T08:17:47+09:00
- Points: 1

더 고전적으로 보면 그냥 고전적인 정보검색 기술들이 보다 국지적인 레벨에서 재활용되는 듯 하네요

### Comment 52555

- Author: redmi
- Created: 2026-03-07T12:29:15+09:00
- Points: 1

~~는 죽었다 💀💀💀

### Comment 52520

- Author: ppj050
- Created: 2026-03-06T17:12:07+09:00
- Points: 1

그냥 rag잖아;

### Comment 52517

- Author: lkaybob
- Created: 2026-03-06T15:52:01+09:00
- Points: 1

설치 페이지에서 이메일 주소를 요구하길래 Private Repo인가 봤더니 Public Repo이네요.  
아래 링크로 들어가시면 됩니다.  
  
https://github.com/ArtemXTech/personal-os-skills/tree/main/skills/recall
