Claude Code가 세션 간 모든 것을 잊어버리는 문제와 해결책 구축
요약
Claude Code가 세션 종료 후 이전 대화 맥락을 기억하지 못하는 문제를 해결하기 위해 오픈 소스 도구인 memcp를 소개합니다. memcp는 세션 로그를 로컬 SQLite에 저장하고 MCP를 통해 Claude가 과거의 설계 결정과 논의 내용을 검색할 수 있게 합니다.
핵심 포인트
- Claude Code의 세션 간 컨텍스트 유실 문제 해결
- memcp는 MCP를 활용해 이전 대화 로그를 검색 가능하게 함
- 데이터는 로컬 SQLite에만 저장되어 보안 및 프라이버시 유지
- SQLite FTS5를 이용한 빠르고 실용적인 전체 텍스트 검색 제공
- 향후 Cursor 등 다른 코딩 에이전트로 확장 가능한 아키텍처
Claude Code는 매번 처음부터 시작합니다
만약 여러분이 Claude Code를 매일 사용한다면, 같은 설명을 반복해서 듣게 되는 자신을 발견했을 것입니다.
- 왜 이 아키텍처를 선택했나요?
- 저 구현 방식은 왜 거부했나요?
- 나중에 개선할 부분은 무엇인가요?
같은 프로젝트를 작업하고 있을 때조차, Claude Code는 세션이 끝나면 모든 것을 잊어버립니다.
대화 로그는 여전히 남아 있습니다—~/.claude/projects/ 아래에 JSONL 파일로 저장되어 있지만, Claude는 이를 다음 세션에서 사용하지 못합니다. 즉, 메모리는 존재하지만 에이전트가 접근할 수 없습니다.
Git은 무엇이 변경되었는지 알려줄 수는 있지만, 왜 그렇게 되었는지는 알려주지 못합니다. 개발 과정에서 이루어진 설계 결정, 트레이드오프(trade-offs), 논의 내용은 종종 손실되는데, 이는 미래 작업에 가장 가치 있는 컨텍스트 중 일부입니다.
이 문제를 해결하기 위해 저는 memcp라는 오픈 소스 도구를 만들었습니다.
https://github.com/nnyannya-tech/memcp
memcp란 무엇인가요?
간단히 말해, memcp는 Claude Code의 세션 로그를 로컬에 저장하고 MCP(Model Context Protocol)를 통해 Claude가 이를 검색할 수 있게 합니다.
세션이 끝나면, 해당 로그는 자동으로 로컬 SQLite 데이터베이스에 흡수됩니다. 이후 세션에서 Claude는 search_memory와 같은 MCP 도구를 호출하여 이전 대화에서 관련 컨텍스트를 검색할 수 있습니다.
이전
User:
왜 이 인증 서비스의 refresh 토큰을 Redis에 저장하기로 결정했나요?
...
이후
User:
왜 이 인증 서비스의 refresh 토큰을 Redis에 저장하기로 결정했나요?
...
목표는 간단합니다. Claude가 매번 처음부터 시작하는 대신, 자신의 과거 코드, 논의 내용, 설계 결정을 검색하고 기억할 수 있도록 하는 것입니다.
작동 방식
아이디어는 간단합니다.
세션 종료
│ (자동으로)
▼
...
모든 데이터는 로컬 SQLite에 저장되며 절대로 외부 서비스로 전송되지 않습니다. 클라우드 동기화나 원격 측정(telemetry)은 없습니다.
현재 memcp는 네 가지 MCP 도구를 제공합니다:
| Tool | 설명 |
|---|---|
search_memory(query, limit) | 모든 이전 세션에 대한 전체 텍스트 검색 |
| ... | |
| 언급하는 사용자들은 |
SQLite FTS5는 별도의 서비스 실행 없이도 빠르고 실용적인 전체 텍스트 검색 기능을 제공합니다. 임베딩을 사용한 시맨틱 검색은 분명 매력적이지만, 추가적인 복잡성을 도입하기 전에 전통적인 전체 텍스트 검색만으로 충분한지 먼저 검증하고 싶습니다.
플러그인 가능한 파서 아키텍처
현재 memcp는 Claude Code 세션 로그만 지원합니다. 하지만 미래에는 Cursor나 Codex CLI와 같은 다른 코딩 에이전트도 지원하고 싶습니다.
이를 가능하게 하기 위해, 파서는 다음 시그니처를 가진 간단한 순수 함수로 구현됩니다:
ParseFn = Callable[[Path], tuple[Session, list[Message], list[ToolCall]]]
새로운 에이전트를 지원하는 것은 단순히 이 인터페이스를 구현하는 문제입니다.
현재 상태
memcp는 아직 MVP(Minimum Viable Product) 단계이므로, 오늘날 무엇을 할 수 있고 무엇을 할 수 없는지 알려드립니다.
할 수 있는 것
- Claude Code 세션 로그 자동 수집
- SQLite FTS5를 사용한 전체 텍스트 검색 수행
- MCP를 통해 세션 전반에 걸쳐 검색하고 특정 세션을 읽기
아직 할 수 없는 것
-
Claude Code 이외의 에이전트 지원 (예: Cursor, Codex)
-
시맨틱 검색 (임베딩 기반 검색)
-
세션에서 장기 기억이나 핵심 결정을 자동으로 추출하는 기능 (현재는 원본 로그를 검색함)
-
Windows 지원 (현재 macOS 및 Linux만 가능)
-
잘 작동한 점은 무엇인가요?
-
불편하게 느껴진 점은 무엇인가요?
-
추가 코딩 에이전트를 지원하기 위한 풀 리퀘스트는 언제나 환영합니다.
프로젝트가 흥미롭다면, GitHub에서 별점(⭐)을 주시거나 이슈 또는 PR을 남겨주시면 정말 감사하겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기