Obsidian + Claude Code: 실제로 사용하는 공유 메모리 스택
요약
본 글은 Obsidian과 Claude Code를 연결하여 개발 워크플로우의 메모리 문제를 해결한 개인적인 시스템을 소개합니다. 복잡한 도구 없이, Obsidian Vault를 '진실의 원천'으로 삼고 프로젝트별 운영 매뉴얼(CLAUDE.md)을 만들어 Claude 세션 후 간단한 스크립트로 기록을 동기화하는 방식입니다.
핵심 포인트
- Obsidian을 로컬 기반의 진실의 원천(Source of Truth)으로 활용합니다.
- 프로젝트마다 CLAUDE.md 파일을 운영 매뉴얼로 작성하여 컨텍스트를 제공합니다.
- 복잡한 벡터 DB나 SaaS 없이, 간단한 스크립트로 기록 동기화가 가능합니다.
- 이 시스템은 개발자가 직접 사용하는 실용적인 메모리 관리 시스템입니다.
예전에는 아이디어가 죽어가는 곳이 노트였습니다.
Obsidian은 제가 너무 완벽하게 정리한 아름다운 무덤 같았습니다. Claude Code는 매번 작업이 끝나면 모든 것을 잊어버리는 영리하지만 깜빡하는 인턴 같았죠.
그러다 저는 이 둘을 연결하고, 아예 메모하는 행위 자체를 멈췄습니다. 제 스택(stack) 자체가 저 대신 기록하기 시작한 겁니다.
이 글은 또 다른 '세컨드 브레인(second brain)' 감성 포스팅이 아닙니다. 이것은 제가 개발 생활을 하는 데 사용하는, 덕트 테이프로 임시방편처럼 붙여 놓았지만 실제로 작동하는 메모리 시스템입니다.
문제점: 두 개의 뇌, 제로의 기억력
이전에는 이런 상황이 벌어지고 있었습니다.
Obsidian은 제가 생각했던 모든 것을 알고 있었습니다. 오래된 회의록, 미완성 아이디어들, 그리고 "나중에 꼭 필요할 거야"라고 생각했던 2022년의 그 코드 조각 같은 것들이요. 로컬에 있고 빠르고, 저만의 것이었습니다. 하지만 바보 같았습니다. 아무것도 할 수 없었죠.
Claude Code는 제가 원하는 모든 것을 해낼 수 있었습니다. 코드를 작성하고(Write code), 리팩토링하며(refactor), 기능을 출시하고(ship features), 테스트를 실행할 수 있었죠. 하지만 에스프레소를 마신 금붕어 같은 기억력을 가지고 있었습니다. 새로운 세션이 시작될 때마다 "안녕하세요, 당신은 누구고 이 코드베이스는 무엇인가요?"라는 질문을 받는 식이었죠.
저는 그 둘 사이의 인간 API(Application Programming Interface)였습니다. Obsidian에서 Claude로 컨텍스트를 복사하고. Claude가 한 것을 다시 Obsidian으로 복사하는 작업이었습니다. 저는 매우 비싼 클립보드였던 셈입니다.
그래서 저는 클립보드 역할을 멈췄습니다.
스택: 터무니없이 단순함
세 가지 요소만 사용했습니다. 벡터 데이터베이스(vector database)도 없고, 화려한 SaaS(Software as a Service)도 없으며, 6개월 안에 사라질 $20짜리 AI 래퍼(wrapper)도 없습니다.
1. Obsidian Vault를 진실의 원천(Source of Truth)으로 사용
제 볼트(vault)는 ~/vault에 있습니다. 그냥 마크다운(Markdown) 파일입니다. 데이터베이스도, 종속성(lock-in)도 없습니다. 구조는 다음과 같습니다:
/00-inbox/ -> 자동 가져오는 자료가 여기에 쌓임
/01-projects/ -> 활성화된 프로젝트들, 각각 CLAUDE.md 파일을 가짐
/02-memory/ -> 메모리 트리 - 사람, 결정 사항, 버그 등
...
2. Claude Code와 CLAUDE.md 파일의 결합
모든 프로젝트에는 시작할 때 Claude가 읽는 CLAUDE.md 파일이 있습니다. 이것은 프롬프트(prompt)가 아닙니다. 운영 매뉴얼입니다.
제 것의 예시는 이렇습니다:
# Project: numbpilled-api
- Stack: Bun + Hono + Postgres
- 절대 rm -rf를 실행하지 말고, 항상 trash-cli를 사용하세요
...
3. 접착제(The Glue): 둘을 동기화하는 20줄짜리 스크립트
Claude Code는 마크다운에 작성하고. Obsidian은 마크다운을 읽습니다. 끝입니다. 이것이 통합 방식입니다.
저는 모든 Claude 세션 후에 실행되는 훅(hook)을 가지고 있습니다:
echo "- $(date): $CLAUDE_TASK - files: $FILES_CHANGED - lesson: $LEARNED" >> ~/vault/00-inbox/changelog.md
토큰(TokenJuice)도, 임베딩(embeddings)도 없습니다. 오직 파일만 있습니다.
실제 생활에서 작동하는 방식
아침:
저는 Obsidian을 엽니다. 00-inbox에는 이미 전날 밤의 요약이 있습니다. Claude는 밤 11시에 인증 리팩토링(auth refactor)을 완료했고, 무엇을 변경했는지, 무엇이 고장 났는지, 무엇을 배웠는지 작성했습니다. 제가 요청하지 않았습니다. CLAUDE.md가 그렇게 하라고 지시했기 때문에 그냥 한 것입니다.
업무 중:
저는 Claude에게 "여기에 컨텍스트(context)가 있어."라고 프롬프트(prompt)하지 않습니다. 저는 "/02-memory/decisions.md를 읽고 지난번처럼 결제 버그를 수정해 줘."라고 요청합니다.
Claude는 알고 있습니다. 왜냐하면 그 파일은 지난주에 자신이 작성했기 때문입니다.
속임수처럼 느껴지는 예시 워크플로우:
제가 "/clear 다음 '다른 라우트와 같은 패턴으로 속도 제한(rate limiting)을 구현해 줘'라고 말합니다.
Claude는 제가 아무것도 붙여넣지 않았는데도 이렇게 합니다:
- 자신이 생성한
02-memory/patterns/rate-limiting.md를 엽니다. - 기존 구현 내용을 읽습니다.
- 이를 새로운 라우트에 적용합니다.
- 새 항목을 작성합니다:
03-docs/rate-limiting.md - /api/numbpilled에 추가됨, 제한 100/분
제 Obsidian 그래프에는 이제 새로운 노드가 생겼습니다. 제가 만든 것이 아닙니다.
마법의 순간:
지난 화요일 저는 Obsidian에서 "왜 Express 대신 Hono를 선택했지?"라고 검색했습니다. 답이 거기에 있었습니다. 제가 쓴 게 아니었습니다. 제가 프레임워크 비교를 요청한 후 Claude가 3주 전에 쓴 것이었습니다. 그것은 자신의 추론을 02-memory/decisions.md에 추가했던 것입니다.
제 AI는 제가 내린 결정을 저보다 더 잘 기억했습니다.
왜 이것이 모든 "AI 두뇌(second brain)" 도구들을 능가하는가
대부분의 도구들은 똑똑하려고 합니다. 이 스택은 검사 가능(inspectable) 하려고 합니다.
-
그냥 파일입니다. Claude가 환각(hallucinate)을 일으키면, 저는 Markdown 파일을 열어 해당 줄만 지웁니다. 재색인화할 블랙박스 벡터 DB가 아닙니다.
-
복리 효과를 냅니다. 매 세션이 다음 세션을 더 스마트하게 만듭니다. 제
CLAUDE.md파일은 제가 수정하지 않아도 점점 좋아지고 있습니다. Claude가 스스로 매뉴얼을 개선하는 것입니다. -
오프라인에서도 작동합니다. 제 볼트(vault)는 로컬입니다. 제 기억도 로컬입니다. API가 다운되어도, 저는 여전히 저의 두뇌를 가지고 있습니다.
-
맥락 전환(context switching)을 없애줍니다. 저는 Obsidian에 살고, Claude는 터미널에 삽니다. 그들은 Markdown이라는 중간 지점에서 만납니다. 이제 더 이상 둘 사이에서 복사-붙여넣기를 하지 않습니다.
예전에는 '지식 관리'에 일주일에 6시간을 쓰곤 했습니다. 지금은 0시간입니다. 시스템이 스스로 관리합니다.
가져가고 싶은 설정 방법 (The setup, if you want to steal it)
Day 1 - Claude에게 기억을 기록하게 만들기:
~/vault/02-memory/decisions.md 파일을 생성하고 여기에 다음 내용을 CLAUDE.md에 추가하세요:
중요한 작업을 마친 후에는, ~/vault/02-memory/decisions.md 파일에 2~3개의 불렛 포인트를 추가하세요: 무엇을 했는지, 왜 했는지, 다음에 피해야 할 것은 무엇인지.
그게 전부입니다. 일주일이 지나면, 당신은 자신이 작성한 적 없는 결정 로그를 갖게 될 것입니다.
Day 2 - Obsidian을 프롬프트 라이브러리로 만들기:
~/vault/03-docs/prompts/ 폴더를 생성하고 최고의 프롬프트를 Markdown 파일로 저장하세요. 그리고 Claude에게 다음과 같이 알려주세요:
개인 AI의 미래는 더 나은 챗봇이 아닙니다. 스스로 기록하는 금고입니다.
저는 '세컨드 브레인(second brain)'을 구축하는 것을 멈췄습니다. 대신, 하나를 성장시키기 시작했습니다. 그리고 마침내 이 시스템은 저보다 제 코드베이스에 대해 더 많이 알고 있습니다.
제 스택 전체를 가져가시겠어요?
저는 메모리 트리(Memory Tree) 구조의 금고 템플릿, 제가 작성한 모든 CLAUDE.md 파일, 자동 동기화 후크, 그리고 실제로 좋은 문서를 작성하는 데 사용되는 7가지 프롬프트 패턴을 하나의 복제 가능한 키트로 패키징했습니다.
**Obsidian + Claude Code: 공유 메모리 스택(The Shared Memory Stack)**은 여기에서 받으세요: [https://numbpilled.gumroad.com/l/obsidian-claude]
P.S. 또한 Claude가 스스로 변경 로그(changelog)를 작성하게 만드는 스크립트도 포함되어 있어, 더 이상 '오늘 내가 한 일'을 직접 작성할 필요가 없습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기