Claude Code의 Persistent memory: 유지할 가치가 있는 것
Source: Dev.to
위 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. (코드 블록, URL 및 마크다운 형식은 그대로 유지됩니다.)
자동 메모리의 기능 — 그리고 한계
자동 메모리는 프로젝트별 전용 디렉터리(~/.claude/projects/<project>/memory/) 혹은 전역(~/.claude/memory/)에 있는 Markdown 파일 집합이다. Claude는 세션 시작 시 인덱스 파일 MEMORY.md를 통해 이를 읽으며, 세션 중에 업데이트할 수 있다.
하지 않는 것:
- 자동 세션 로그 역할을 하지 않는다. Claude는 일어난 모든 일을 기록하지 않는다.
- 명시적으로 보관할 가치가 있다고 알려주거나 감사를 요청하지 않는 한 정보를 저장하지 않는다.
CLAUDE.md와의 구분이 중요하다:
CLAUDE.md– 프로젝트를 설명한다: 스택, 규칙, 배포 등.- Memory – 작업 관계를 설명한다: 선호도, 진행 중인 결정, 특정 시점의 눈에 띄지 않는 제약 등.
The 4 memory types
각 메모리 파일은 앞부분(front‑matter)에 유형이 선언되어 있습니다. 이는 겉모습만을 위한 것이 아니라, Claude가 파일을 언제 사용할지를 정의합니다.
| Type | Purpose |
|---|---|
| user | 당신이 함께 일하는 대상: 역할, 기술 수준, 지식 분야. 매 세션마다 다시 소개할 필요 없이 Claude가 설명 깊이를 조정할 수 있게 합니다. |
| feedback | 작업 접근 방식: 무엇이 수정되었고, 무엇이 검증되었는지. 예시: “메시지 끝에 방금 한 일을 요약하지 마세요.” |
| project | 현재 프로젝트 상태: 진행 중인 결정, 이니셔티브, 시간 제약. 이 정보는 빠르게 오래되므로 정기적인 검토가 필요합니다. |
| reference | 외부 시스템에서 정보를 찾는 위치: 예를 들어 “Linear 프로젝트 INGEST에 추적된 파이프라인 버그”, “grafana.internal/d/api-latency에 있는 Grafana 지연 보드”. |
유지할 가치가 있는 것 — 그리고 그렇지 않은 것
Memory is not an archive. Only store information that cannot be deduced from the code or CLAUDE.md and that will be useful in future sessions.
유지할 가치가 있는 것
- 세션 중에 확인되거나 수정된 스타일 선호도.
- 작업 중에 발견한 실제 함정 — 보이지 않는 제약이나 직관에 반하는 동작.
- 아직 코드에 반영되지 않은 진행 중인 아키텍처 결정.
- 정기적으로 사용하는 외부 리소스에 대한 포인터.
메모리에 포함되지 않아야 할 것
- 파일에 보이는 모든 내용 — Claude가 코드에서 읽어옵니다.
- 세션 상세 정보 — 이를 위해 git 로그를 사용하세요.
- 진행 중인 작업 — 세션에 속하며 영구 메모리에는 포함되지 않습니다.
CLAUDE.md에 이미 있는 관행 — 중복은 의미가 없습니다.
프로젝트 메모리 vs. 글로벌 메모리
- 프로젝트 메모리 –
~/.claude/projects/<project>/memory/– 작업 디렉터리마다 격리됩니다. 다른 폴더에서 Claude를 열면 다른 메모리가 사용됩니다. 프로젝트별 선호도와 결정 사항을 여기에 저장하세요. - 글로벌 메모리 –
~/.claude/memory/– 모든 세션과 프로젝트에 적용됩니다. 응답 스타일, 사용자의 기술 수준, 커뮤니케이션 규칙 등 전반적인 선호도를 여기 저장하세요.
베스트 프랙티스: 먼저 프로젝트 메모리부터 사용합니다. 특정 선호도가 모든 프로젝트에 걸쳐 나타나면 글로벌 메모리로 옮깁니다. 동일한 항목을 두 곳에 중복해서 저장하지 마세요.
자동 피드백: ~/.claude/CLAUDE.md 파일의 규칙
새로운 아이디어를 떠올릴 때마다 Claude에게 저장하라고 지시하는 대신, 사용자 수준의 CLAUDE.md(~/.claude/CLAUDE.md)에 규칙을 한 번만 정의하면 됩니다. 이 파일은 모든 프로젝트에서 매 세션마다 자동으로 로드됩니다.
# Global rules
# Example rule
- Whenever I mention a new style preference, automatically add it to
`~/.claude/memory/feedback/style.md` with the appropriate front‑matter.
작업 흐름에 맞는 규칙을 자유롭게 추가하면, Claude가 이를 자동으로 적용합니다.
자동 메모리
세션에서 지속적인 정보가 드러나면, 해당 정보를 즉시 적절한 메모리 파일에 저장하세요—요청을 기다리지 마세요.
| 무엇 → 어디 | 메모리 파일 |
|---|---|
| Preference discovered or corrected | memory/user or memory/feedback |
| Approach correction | memory/feedback |
| Durable project decision | memory/project |
| Pointer to a regularly‑used resource | memory/reference |
저장하지 마세요:
- 임시 상태
- 진행 중인 작업
CLAUDE.md에 이미 있는 모든 것- 코드에서 추론할 수 있는 정보
필터는 트리거만큼 중요합니다
필터가 없으면 Claude는 모든 세션 세부 정보를 기록하게 되며, 메모리는 방금 정리한 CLAUDE.md만큼 빠르게 증가합니다.
메모 관리: 감사 프롬프트
Memory ages. Project‑type memories, in particular, can become stale (e.g., a decision made in January may be resolved by March, but the file remains). Run an audit when memory has drifted:
Audit the memory files in `.claude/projects/.../memory/`.
For each file:
1. Is the content still accurate? (check against the current file state if needed)
2. Is it non‑deducible from code or CLAUDE.md?
3. Is the type correct? (user / feedback / project / reference)
4. Is the front‑matter description precise enough?
Global coherence: duplicates, contradictions, stale project memories, MEMORY.md up‑to‑date?
Output as a table:
File | Issue | Recommended action
--- | --- | ---
... | ... | ...
Then apply the recommended corrections.
이 프롬프트를 슬래시 명령어로 저장해 두면 찾을 필요가 없습니다:
- 프로젝트‑레벨:
.claude/commands/audit-memory.md - 전역:
~/.claude/commands/audit-memory.md
이제 간단히 /audit-memory 를 실행하면 됩니다.
결론
자동 메모리는 특정 문제를 해결합니다: CLAUDE.md가 따라잡기에는 너무 빠르게 변하지만 세션 간에 유지할 가치가 있는 정보. 선택적으로 사용할 때 잘 작동합니다—주제당 하나의 파일, 잘 선택된 유형, 그리고 front‑matter에 정확한 설명이 있을 때.
시스템을 깨는 요인: 모든 것을 메모리에 넣으려는 시도. 통제되지 않은 메모리 증가는 300줄짜리 CLAUDE.md만큼 쓸모없게 됩니다—Claude가 모든 것을 로드하고 처리하지만, 신호가 잡음에 묻혀버립니다.
📄 Associated CLAUDE.md
- View:
- Download:
- Catalogue: