Claude가 스스로 쓰는 관찰 노트 | Memory
대화 중 배운 개인 선호를 세션 간에 유지해 주는 Memory의 원리와 CLAUDE.md 와의 역할 경계를 세웁니다
Overview
CLAUDE.md 레슨에서 CLAUDE.md를 내가 직접 써서 건네는 업무 매뉴얼로 그렸습니다. 매뉴얼에는 팀 합의만 남기고 개인 습관은 뺐습니다. 그런데 의문이 남습니다. "비유는 빼고 정의만 간결하게 써줘" 같은 나만의 교정은 어디에 쌓아야 할까요?
이번 레슨은 그 답으로 Memory를 소개합니다. Memory는 내가 쓰는 매뉴얼이 아니라 Claude가 대화를 관찰하면서 스스로 쓰는 노트입니다.
학습 목표
- Memory가 세션 간 학습을 유지하는 원리를 설명합니다
- CLAUDE.md와 Memory의 역할 차이를 구분합니다
- Memory에 담아야 할 것과 담으면 안 되는 것을 판단합니다
매 세션 반복되는 같은 교정
"비유는 빼고 정의만 간결하게 써줘" 같은 한 줄 교정을 매일 아침 다시 입력하고 있다면 신호입니다.
세션을 새로 열면 Claude는 다시 비유를 가득 넣은 설명을 돌려주고, 리뷰는 평범한 체크리스트로 돌아갑니다. CLAUDE.md 레슨에서 본 무상태(Stateless) 동작이 여기서도 그대로 이어집니다. 어제 해준 교정은 오늘 아침에 전부 사라져 있습니다.
CLAUDE.md에 적어두면 될 것 같지만, 두 위치 모두 적합하지 않습니다. ./CLAUDE.md 는 git으로 팀 전체에 공유되고, ~/.claude/CLAUDE.md 는 모든 프로젝트에 적용됩니다. 나만의 교정을 한쪽에 넣으면 팀원에게도 보이고, 다른 쪽에 넣으면 관련 없는 프로젝트에까지 적용됩니다.
이 틈을 메우는 것이 Memory입니다.
Memory: Claude가 스스로 쓰는 관찰 노트
차이는 분명합니다. CLAUDE.md는 내가 쓰고, Memory는 Claude가 씁니다. CLAUDE.md는 내가 직접 써서 건네는 매뉴얼이고, Memory는 Claude가 대화를 관찰하면서 스스로 적어두는 노트입니다. 내가 "비유 빼줘"라고 교정하면, Claude는 이 한 줄을 자기 노트에 적어두고 다음 세션에서 다시 꺼냅니다.
| CLAUDE.md | Memory | |
|---|---|---|
| 누가 쓰는가 | 내가 직접 | Claude가 자동으로 |
| 무엇을 담는가 | 팀 합의·아키텍처 결정·제약사항 | 개인 선호·교정·작업 패턴 |
| 공유 범위 | git으로 팀 전체 | 로컬, 개인 전용 |
| 충돌 시 우선순위 | 높음 | 낮음 |
Memory는 CLAUDE.md가 다루지 않는 빈칸, 즉 나만의 맥락을 채우는 자리입니다.
Memory의 동작 흐름
관찰 노트는 프로젝트 단위로 분리되어 ~/.claude/projects/ 아래에 저장됩니다. 프로젝트 경로를 기반으로 폴더가 생기고, 그 안에 MEMORY.md 인덱스와 주제별 파일이 들어갑니다.
~/.claude/projects/
-Users-username-my-project/ # 프로젝트 경로 기반
memory/
MEMORY.md # 인덱스 (앞쪽 200 줄 자동 로드)
user_preferences.md # 주제별 파일
feedback_testing.md프로젝트별 분리 덕분에 프로젝트 A의 교정이 프로젝트 B 대화에 끼어들지 않습니다. Memory는 로컬 전용이라 git에 올라가지 않고 팀원과도 공유되지 않습니다. CLAUDE.md가 공유된 매뉴얼이라면, Memory는 내 서랍 안의 수첩입니다.
세 가지 동작 시점
- 세션 시작:
MEMORY.md인덱스가 Context에 자동으로 실립니다. 각 메모리 파일은 평소엔 인덱스에 제목만 올라와 있고, 필요한 항목을 Claude가 그때그때 꺼내 읽습니다. 터미널 상단에 메모리 로드 표시가 짧게 나타납니다 - 대화 중 자동 감지: 교정이나 선호 패턴을 감지하면 Claude가 스스로 노트에 한 줄을 추가합니다
- 명시적 저장·삭제 요청: "이것을 기억해"로 즉시 저장, "이 선호는 지워줘"로 항목을 빼도록 요청할 수 있습니다
[실습] 개인 선호 하나 기억시키기
Memory가 실제로 동작하는지 직접 확인합니다.
Step 1: /memory 로 현재 상태 확인
Claude Code에서 /memory 를 입력합니다.

이번 세션에 로드된 메모리 파일들(사용자 전역 ~/.claude/CLAUDE.md, 프로젝트 ./CLAUDE.md 등)과 함께, 맨 아래쪽에 Open auto-memory folder 항목이 나옵니다. 위쪽 항목들을 고르면 해당 CLAUDE.md가 에디터에서 열리고, 맨 아래 항목을 고르면 자동 Memory 폴더가 파일 탐색기에서 열립니다.
이 레슨에서 다루는 자동 Memory는 맨 아래 Open auto-memory folder 입니다.
Step 2: 선호 저장 요청
Claude Code에 다음과 같이 입력합니다.
설명할 때 비유는 빼고 정의만 간결하게 써줘. 기억해Claude가 이 선호를 Memory에 저장했다는 응답을 확인합니다.
Step 3: 새 세션에서 검증
/clear 로 세션을 초기화하거나 새 터미널에서 claude 를 실행합니다. 세션 시작 시 터미널 상단에 메모리 로드 표시가 나타나는지 먼저 봅니다.
그리고 아무 개념이나 설명을 요청합니다.
Context Window 가 뭐야?Claude는 기본적으로 비유를 활용해 설명하므로, 비유 없이 정의만 돌아오면 Memory가 정상 동작했다는 신호입니다.
Memory에 담지 말 것
관찰 노트에 아무거나 쌓이지 않도록 세 가지는 막아둡니다.
- 민감 정보: API 키·비밀번호·토큰. Memory는 평문으로 저장되므로 민감 정보는 환경 변수나 비밀 관리자로 빼야 합니다
- 팀 규칙: 팀 전체가 따라야 하는 규칙은 CLAUDE.md에 넣어야 다른 팀원에게도 적용됩니다. Memory는 로컬이라 내 세션에만 작동합니다
- 코드에서 찾을 수 있는 정보: 기술 스택·디렉토리 구조·명령어. CLAUDE.md 의 매뉴얼 기준이 그대로 이어집니다. 모델이 스스로 찾을 수 있는 정보를 Memory에 넣어두면 Context만 소모됩니다
핵심 포인트 정리
- 작성 주체의 비대칭: CLAUDE.md는 내가 팀을 위해 써두는 매뉴얼, Memory는 Claude가 나를 관찰하면서 적어두는 노트입니다
- 개인 선호는 Memory, 팀 규칙은 CLAUDE.md: Memory는 프로젝트별로 분리되고 로컬 전용이라 팀 Context를 침범하지 않습니다
- 충돌 시 우선순위: CLAUDE.md가 우선합니다. Memory는 CLAUDE.md의 빈칸을 채우는 자리이지, 팀 규칙을 덮어쓰는 자리가 아닙니다
FAQ
-
Q: Memory가 너무 많아지면 어떻게 되나요?
- A:
MEMORY.md인덱스는 앞쪽 일부만 새 세션에 자동으로 실립니다. 뒤로 밀려난 항목은 로드되지 않아, 자주 쓰는 선호도 인덱스 뒤쪽에 있으면 누락될 수 있습니다./memory로 자동 메모리 폴더를 열어 사용하지 않는 항목을 정리합니다
- A:
-
Q: 팀원과 Memory를 공유할 수 있나요?
- A: Memory는 로컬 전용이라 직접 공유되지 않습니다. 팀 전체가 따라야 하는 규칙이라면 CLAUDE.md로 옮기는 것이 맞습니다
-
Q: Memory 파일을 직접 편집해도 되나요?
- A: 됩니다.
~/.claude/projects/아래 파일을 직접 수정하거나 삭제할 수 있습니다. 다만 "기억해" / "지워줘" 를 쓰는 편이 더 간단합니다
- A: 됩니다.
이어서 배울 내용
CLAUDE.md와 Memory로 무엇을 세션 간에 남길지는 해결했습니다. 남은 질문은 하나의 대화를 얼마나 길게 이어가야 하는가입니다. Smart Zone·Dumb Zone으로 돌아가는 질문입니다. 대화가 길어질수록 품질이 떨어지므로, 가장 효과적인 Context 관리는 적절한 시점에 끊는 것입니다.
- 새 대화를 시작해야 하는 시점과 신호
/clear와/compact의 차이