메모리 시스템 (Memory)
읽는 시간: 11분 | 난이도: 중급자
Claude Code의 메모리 관리 시스템을 통해 컨텍스트를 유지하고 세션 간 정보를 공유하는 방법을 배웁니다.
개요
Claude Code의 메모리 시스템은 대화 컨텍스트, 프로젝트 정보, 사용자 설정 등을 저장하고 관리합니다. 이를 통해 더 지능적이고 효율적인 상호작용이 가능합니다.
1. 메모리 기초 (Memory Basics)
1.1 메모리 계층
Claude Code는 다단계 메모리 시스템을 사용합니다:
메모리 계층 구조:
1. 단기 메모리 (Short-term Memory)
- 현재 세션의 대화 기록
- 최근 파일 변경사항
- 임시 변수
2. 중기 메모리 (Medium-term Memory)
- 프로젝트 컨텍스트
- 자주 사용하는 패턴
- 세션 간 공유 데이터
3. 장기 메모리 (Long-term Memory)
- 프로젝트 설정
- 사용자 선호도
- 학습된 패턴
1.2 메모리 저장소
메모리 저장 위치:
- 세션 메모리: .claude/memory/session-{id}.json
- 프로젝트 메모리: .claude/memory/project.json
- 사용자 메모리: ~/.claude/memory/user.json
- 캐시: ~/.claude/cache/
2. 컨텍스트 관리 (Context Management)
2.1 컨텍스트 우선순위
컨텍스트 우선순위:
1. 사용자 프롬프트 (최우선)
2. 현재 작업 파일
3. 관련 프로젝트 파일
4. 프로젝트 설정
5. 세션 기록
6. 사용자 선호도
2.2 컨텍스트 최적화
# .claude/memory/context.yaml
context:
# 파일 컨텍스트
files:
max_files: 50
max_size_per_file: "100KB"
priority:
- "CLAUDE.md"
- "package.json"
- "*.config.{js,ts}"
- "src/**/*.{js,ts,jsx,tsx}"
# 대화 컨텍스트
conversation:
max_turns: 20
retain_hours: 24
summarize_after: 10
# 프로젝트 컨텍스트
project:
include:
- "README.md"
- "ARCHITECTURE.md"
- ".claude/**/*"
exclude:
- "node_modules/**"
- "dist/**"
- "*.min.js"
3. 세션 메모리 (Session Memory)
3.1 세션 상태 저장
{
"sessionId": "session-2024-02-24-001",
"startTime": "2024-02-24T10:00:00Z",
"lastActivity": "2024-02-24T12:30:00Z",
"conversation": [
{
"role": "user",
"content": "README를 한국어로 번역해줘",
"timestamp": "2024-02-24T10:05:00Z"
},
{
"role": "assistant",
"content": "README의 한국어 번역을 완료했습니다...",
"timestamp": "2024-02-24T10:05:30Z"
}
],
"files": [
{
"path": "README.md",
"lastRead": "2024-02-24T10:00:00Z",
"modified": true
}
],
"context": {
"currentDirectory": "/project",
"gitBranch": "main",
"language": "ko"
}
}
3.2 세션 복원
# 세션 목록 확인
claude session list
# 세션 복원
claude session restore session-2024-02-24-001
# 세션 내보내기
claude session export session-2024-02-24-001 --format json
# 세션 삭제
claude session delete session-2024-02-24-001
4. 프로젝트 메모리 (Project Memory)
4.1 프로젝트 컨텍스트 저장
{
"projectId": "my-project",
"lastUpdated": "2024-02-24T12:00:00Z",
"structure": {
"type": "react-app",
"mainLanguage": "TypeScript",
"framework": "React 18",
"buildTool": "Vite"
},
"patterns": {
"componentLocation": "src/components/",
"utilsLocation": "src/utils/",
"testsLocation": "src/**/*.test.ts",
"naming": "PascalCase for components"
},
"preferences": {
"codeStyle": "prettier",
"linter": "eslint",
"testFramework": "jest",
"autoSave": true
},
"history": [
{
"action": "file_created",
"file": "src/components/Header.tsx",
"timestamp": "2024-02-24T10:00:00Z"
}
]
}
4.2 프로젝트 메모리 관리
# 프로젝트 메모리 확인
claude memory project
# 프로젝트 메모리 초기화
claude memory project init
# 프로젝트 메모리 업데이트
claude memory project update
# 프로젝트 메모리 내보내기
claude memory project export --format json
5. 사용자 메모리 (User Memory)
5.1 사용자 선호도 저장
{
"userId": "user-123",
"preferences": {
"language": "ko",
"theme": "dark",
"editor": "code",
"autoComplete": true,
"verboseMode": false
},
"frequentlyUsed": [
{
"command": "format",
"usage": 150,
"lastUsed": "2024-02-24"
},
{
"command": "test",
"usage": 120,
"lastUsed": "2024-02-24"
}
],
"customPrompts": [
{
"name": "review",
"template": "코드 리뷰를 해줘. 포커스: {focus}",
"parameters": ["focus"]
}
]
}
5.2 학습된 패턴
{
"patterns": [
{
"type": "code_style",
"description": "TypeScript React 컴포넌트 패턴",
"template": "function {ComponentName}() {{ return (...) }}",
"usage_count": 45
},
{
"type": "naming",
"description": "유틸리티 함수 camelCase",
"pattern": "[a-z][a-zA-Z0-9]*",
"usage_count": 120
}
]
}
6. 메모리 최적화 (Memory Optimization)
6.1 컨텍스트 압축
# .claude/memory/compression.yaml
compression:
enabled: true
strategy: "intelligent"
rules:
# 대화 요약
conversation:
summarize_after: 15
keep_recent: 5
summary_detail: "brief"
# 파일 변경사항
files:
keep_changes: 100
consolidate_after: 50
group_by: "file_type"
# 프로젝트 정보
project:
cache_structure: true
invalidate_on: "dependency_change"
6.2 메모리 정리
# 메모리 사용량 확인
claude memory stats
# 오래된 세션 정리
claude memory cleanup --sessions --older-than 30d
# 캐시 정리
claude memory cleanup --cache
# 전체 정리
claude memory cleanup --all
7. 영속성 (Persistence)
7.1 자동 저장
# .claude/memory/persistence.yaml
persistence:
auto_save:
enabled: true
interval: "5m"
on_change: true
backup:
enabled: true
interval: "1h"
keep: 10
sync:
enabled: false
provider: "github"
repository: "user/claude-memory"
7.2 메모리 동기화
# 메모리 동기화 활성화
claude memory sync enable
# 동기화 상태 확인
claude memory sync status
# 수동 동기화
claude memory sync push
claude memory sync pull
8. 메모리 보안 (Memory Security)
8.1 민감 정보 보호
# .claude/memory/security.yaml
security:
sensitive_patterns:
- "api_key"
- "password"
- "token"
- "secret"
- "credential"
redaction:
enabled: true
character: "*"
preserve_length: true
encryption:
enabled: true
algorithm: "AES-256-GCM"
key_from_env: "MEMORY_ENCRYPTION_KEY"
8.2 메모리 액세스 제어
access_control:
# 파일 접근
files:
allow: ["CLAUDE.md", "*.config.*"]
deny: [".env", "*secret*"]
# 메모리 읽기
read:
require_auth: false
log_access: true
# 메모리 쓰기
write:
require_auth: false
validate_before_write: true
요약
메모리 시스템은 Claude Code의 지능형 컨텍스트 관리 핵심입니다.
핵심 개념
- 메모리 계층: 단기/중기/장기 메모리
- 컨텍스트 관리: 우선순위 기반 컨텍스트
- 세션 메모리: 대화 기록 및 상태
- 프로젝트 메모리: 프로젝트별 컨텍스트
- 사용자 메모리: 선호도 및 학습
모범 사례
- 정기적인 메모리 정리
- 민감 정보 보호
- 컨텍스트 압축 활용
- 자동 저장 및 백업
다음 단계
- Plugins - 플러그인 시스템
- CLI Reference - 명령줄 참조
- Troubleshooting - 문제 해결
이 가이드가 도움이 되셨나요?
메모리 관리에 대한 질문이 있으시면 언제든지 물어보세요!
