
Claude Code의 기억 설계 — CLAUDE.md · rules · 자동 메모리 배치 결정 가이드
요약
Claude Code의 효율적인 사용을 위해 CLAUDE.md와 자동 메모리의 차이를 이해하고 적절한 메모리 설계 방법을 제안합니다. 사용자가 작성하는 CLAUDE.md와 Claude가 스스로 생성하는 자동 메모리의 메커니즘을 구분하여 컨텍스트를 최적화하는 가이드를 제공합니다.
핵심 포인트
- CLAUDE.md(사용자 작성)와 자동 메모리(Claude 작성)의 차이 이해
- 정보의 성격에 따른 적절한 배치 계층(Scope) 선택 방법
- 강제적인 제약이 필요한 경우 메모리가 아닌 후크(Hook) 사용 권장
- 효율적인 메모리 설계를 위한 3단계 절차 안내
대상 독자: 일단 효과가 있는 CLAUDE.md를 하나 만들고 싶은 입문자 / 스코프(Scope) · import · 자동 메모리까지 포함한 「메모리 설계」를 정리하고 싶은 개발자
전제 지식: Claude Code가 설치되어 있을 것. git의 기본 조작(커밋)을 접해본 적이 있다면 읽기 편하지만, 필수 사항은 아닙니다.
이 기사에서 할 수 있는 것: CLAUDE.md와 자동 메모리의 차이를 이해하고, 「이 사실은 어디에 적을 것인가」를 한 장의 표로 판단할 수 있습니다.
「매번 똑같은 설명을 다시 하고 있다」, 「CLAUDE.md를 썼는데 왜인지 매번 무시된다」——Claude Code를 깊게 사용할수록 이 두 가지 문제에 부딪힙니다. 원인은 같습니다. 기억의 메커니즘을 하나라고 생각하는 것입니다.
통상적인 세션이 다루는 기억은, 당신이 쓰는 CLAUDE.md와 Claude가 스스로 쓰는 자동 메모리 두 종류입니다 (서브 에이전트 전용 메모리도 있지만, 별도로 후반부에서 다룹니다). 공식 문서에 흩어져 있는 양자의 사양을 대조하여, 「이 설정은 어디에 적을 것인가」를 한 장의 판단표로 결정할 수 있도록 합니다.
동작 확인은 2026년 7월 4일 시점의 Claude Code 2.1.201입니다 (버전은 거의 매일 올라가므로, 번호가 달라도 읽는 법을 바꿔서 적용해 주세요. 수중에서는 claude --version).
다루는 것은 Claude Code의 CLAUDE.md와 자동 메모리이며, Claude.ai의 대화 메모리나 API의 Memory Tool은 별개의 기능입니다.
먼저, 반복해서 등장하는 용어를 통일합니다.
| 용어 | 이 기사에서의 의미 |
|---|---|
| 컨텍스트 (Context) | Claude에게 매번 전달되는 문맥 (지시나 대화). 여기에 들어온 내용만을 바탕으로 동작합니다 |
| ... |
두 가지 기억은 서로 보완하며, 둘 다 매 세션 시작 시에 읽어 들여집니다. 그리고 둘 다 「절대로 지키게 할 설정」이 아니라 **컨텍스트 (Context)**로서 취급됩니다. 어떤 일이 있어도 조작을 멈추고 싶다면, 기억이 아니라 PreToolUse 후크(Hook)가 필요합니다 (후크 자체는 별도의 기사에서 다룰 예정입니다).
두 가지 차이점을 정리합니다.
| CLAUDE.md | 자동 메모리 |
|---|---|
| 쓰는 주체 | 당신 |
| ... |
그림의 local (= CLAUDE.local.md)은 project 스코프의 개인용 버전입니다. 4가지 스코프 (managed / user / project / local)의 자세한 차이는 후술할 「메모리 설계의 요점」에서 다룹니다.
「매번 같은 설명」을 줄이는 열쇠는, 그 사실을 배치해야 할 계층을 선택하는 것입니다. 결론은 이 한 장으로 충분합니다 (이유는 후반부에서 설명합니다).
| 이런 사실 | 배치 장소 |
|---|---|
| 어디서든 · 매번 필요하며, Claude가 항상 알고 있어야 하는 것 | CLAUDE.md |
| ... | 자동 메모리 (Claude에게 기억시킴) |
가끔 사용하는 참조 자료나, /이름으로 호출하는 절차 | 스킬 (On-demand 로딩) |
| 예외 없이 매번, 모델의 판단과 관계없이 지키게 하고 싶은 것 | 후크 (정해진 타이밍에 실행) / 권한 규칙 (허가 · 거부) |
- 입문자 분들: 「메모리」에는 당신이 쓰는 것과 Claude가 쓰는 것 두 가지가 있습니다. 이 부분을 혼동하는 것이 「왜 기억해주지 않지?」의 가장 큰 원인입니다.
- 개발자 분들: 둘 다 하드한 제약 사항이 아닙니다. 반드시 성립시키고 싶은 요건은 기억이 아니라 후크나 권한 (Permission) 규칙 (W3에서 다루었습니다)에 둡니다.
첫 번째 것은 작게 만드는 것이 요령입니다. 절차는 3단계입니다.
- 프로젝트 루트에서
/init을 실행한다. Claude Code를 기동하고, 그 입력창에서 실행합니다 (OS의 셸에서 실행하는 명령어가 아닙니다). 코드베이스를 분석하여 초안을 만듭니다 (기존의 CLAUDE.md가 있다면 덮어쓰지 않고 개선안을 제안합니다)./init이라고 입력합니다. - 만들어진 파일에서 필요 없는 행을 삭제한다.
- git에 커밋하여 팀과 공유한다 (프로젝트의 CLAUDE.md는 공통 자산으로서 성장합니다. git에 익숙하지 않다면 우선 한 번 커밋해 보는 것부터 시작하세요).
삭제하는 기준은 공식의 「써야 할 것 / 쓰지 않는 것이 좋은 것」 표입니다. 많은 사람이 추가하고 싶어 하는 것(튜토리얼, 당연한 마음가짐)은 대개 쓰지 않는 편이 더 효과적입니다.
| 작성해야 할 것 (Include) | 작성하지 않는 것이 좋은 것 (Exclude) |
|---|---|
| Claude가 추측할 수 없는 셸 명령 (Shell Command) | 코드를 읽으면 알 수 있는 것 |
| ... |
첫 번째 CLAUDE.md는 이 정도면 충분합니다.
# CLAUDE.md
## 명령 (Commands)
- 빌드: `npm run build`
...
지시는 검증할 수 있을 정도로 구체적으로 작성합니다. "깔끔하게 정리해 줘"가 아니라 "들여쓰기는 반각 공백 2개로", "테스트해 줘"가 아니라 "커밋 전에 npm test를 실행"과 같이 작성해야 합니다. 행수의 기준은 파일당 200행 미만입니다 (이유는 후술할 "CLAUDE.md가 '무시되는' 진짜 이유"에서 설명합니다).
언제 한 줄을 추가할지에 대한 기준도 있습니다. 같은 실수를 두 번 했을 때, 코드 리뷰에서 프로젝트 고유의 간과 사항이 발생했을 때, 다른 세션에서 동일한 수정을 다시 입력했을 때, 새로운 멤버에게도 동일한 전제 조건이 필요할 때 — 이 중 하나라도 해당한다면 추가할 타이밍입니다. 단, 여러 단계의 절차나 특정 장소에서만 필요한 것은 CLAUDE.md가 아니라 스킬 ( /이름으로 호출할 수 있는 재사용 가능한 지시 묶음. 슬래시 명령(Slash Command)과는 다른 메커니즘이며, 자세한 내용은 별도의 기사에서 다룹니다)이나 경로 한정 규칙(후술)으로 넘깁니다.
CLAUDE.md를 팀이나 여러 스코프(Scope)에서 깊게 사용하다 보면, settings.json의 감각으로는 빠지기 쉬운 3가지 지점이 있습니다 (입문자라면 다음 절까지 건너뛰어도 무방합니다).
- 4개의 스코프는 '덮어쓰기'가 아니라 '연결'입니다. managed / user / project / local은 어느 하나가 승리하는 것이 아니라, 모두 연결되어 컨텍스트(Context)에 들어갑니다. 높은 스코프가 덮어쓰는
settings.json과는 다른 모델로, 모순된 지시가 동시에 존재할 수 있습니다. - 하위 디렉터리의 CLAUDE.md는 온디맨드(On-demand) 방식입니다. 작업 디렉터리와 그 조상 디렉터리는 시작 시 전체 내용을 읽지만, 하위(서브 폴더)의 CLAUDE.md는 시작 시 읽히지 않으며, Claude가 해당 폴더의 파일을 실제로 읽을 때 비로소 추가됩니다. 모노레포(Monorepo)에서 "
packages/foo의 스타일을 모른다"는 현상의 정체가 바로 이것입니다. - 가져온 파일은 시작 시 전체가 전개되므로, 직접 붙여넣는 것과 소비량이 같습니다. 매번 읽어오는 양을 줄이려면, 후술할
@import는 컨텍스트 절약에 도움이 되지 않으며.claude/rules/(경로 한정)가 올바른 도구입니다.
애초에 "작성했는데도 효과가 없는" 이유는, CLAUDE.md가 시스템 프롬프트(System Prompt)의 일부가 아니라 그 뒤에 이어지는 사용자 메시지(User Message)로서 전달되기 때문입니다 (후술할 "CLAUDE.md가 '무시되는' 진짜 이유"에서 다룹니다).
개발자용: 연결 상세 정보 · 시작 위치 · CLAUDE.local.md + import · AGENTS.md 연동
읽기 순서는 넓은 범위에서부터 managed (조직 전체) → user (~/.claude/CLAUDE.md) → project (./CLAUDE.md 또는 ./.claude/CLAUDE.md) → local (./CLAUDE.local.md) 순입니다. managed만은 배치 위치가 OS별로 정해져 있어 (MDM으로 배포하는 조직용), 개인 설정에서는 제외할 수 없습니다.
이 지점이 VS Code의 settings.json과 결정적으로 다른 부분입니다. settings.json은 우선순위에 따라 덮어쓰여 높은 스코프가 승리하지만, CLAUDE.md는 덮어쓰이지 않고 모두 연결(Concatenation)됩니다. 따라서 스코프를 넘나드는 모순된 지시가 동시에 컨텍스트에 존재할 수 있으며, 해결은 Claude의 몫이 되기 쉽습니다. 이는 settings.json의 감각으로는 알아차릴 수 없는 함정입니다.
Claude Code는 작업 디렉터리로부터 트리를 위로 거슬러 올라가며 CLAUDE.md / CLAUDE.local.md를 수집합니다 (시작 위치에 가까운 것일수록 나중에 읽히며, 가장 구체적인 지시로 취급됩니다). 각 디렉터리 내에서는 CLAUDE.local.md가 CLAUDE.md 뒤에 추가됩니다.
읽기에는 비대칭성이 존재합니다. 작업 디렉터리와 그 조상 디렉터리는 시작 시 전체가 읽히지만, 하위 서브 디렉터리는 온디맨드(on-demand) 방식으로 읽힙니다. 루트에서 실행하면 루트의 CLAUDE.md만 읽히지만, 서브 디렉터리 내부로 이동한 후 실행하면 해당 디렉터리와 더불어 **모든 조상의 CLAUDE.md**가 시작 시 읽힙니다. claude를 입력하기 전에 어디로 cd 했느냐에 따라 처음에 적용되는 내용이 달라집니다.
또한 CLAUDE.md 내의 블록 주석(<!-- 메모 -->)은 컨텍스트에 포함되기 전에 제거됩니다 (코드 블록 내의 주석은 유지됩니다).
CLAUDE.local.md 와 @import
Git에 포함하고 싶지 않은 개인 설정은 프로젝트 바로 아래에 CLAUDE.local.md를 생성합니다 (.gitignore에 추가). CLAUDE.md는 @path/to/import를 통해 다른 파일을 가져올 수 있으며, **시작 시 전개(expand)**됩니다. 상대 경로는 작업 디렉터리가 아니라, 해당 import를 작성한 파일을 기준으로 해결됩니다. import는 중첩될 수 있으며, **최대 4단계(import 연쇄 4회까지)**까지 추적합니다.
# CLAUDE.md
프로젝트 개요는 @README.md, 사용할 수 있는 스크립트는 @package.json을 참조.
개인 설정은 @~/.claude/my-project-instructions.md
CLAUDE.local.md는 gitignore 처리되므로 생성한 워크트리(worktree)에만 존재합니다. 여러 개의 git worktree에서 공유하고 싶다면, 로컬 파일이 아니라 @~/.claude/my-project-instructions.md와 같이 홈 디렉터리의 파일을 import 하십시오. 처음으로 외부 import를 만나면 대상 파일을 나열한 확인 다이얼로그가 한 번 나타납니다. 거부하면 import는 무효화되며 다이얼로그는 다시 표시되지 않습니다.
Claude Code가 읽는 것은 AGENTS.md가 아니라 CLAUDE.md입니다. 다른 코딩 에이전트(coding agent)를 위해 AGENTS.md를 사용한다면, @AGENTS.md를 import 하는 CLAUDE.md를 만들어 이중 관리 없이 양쪽 모두 동일한 내용을 읽게 할 수 있습니다.
# CLAUDE.md
@AGENTS.md
(이 아래에 Claude 전용 지시 사항을 추가로 작성)
심볼릭 링크(ln -s AGENTS.md CLAUDE.md)로도 대체할 수 있지만, Windows에서는 링크 생성에 관리자 권한이나 개발자 모드가 필요하므로 @AGENTS.md를 import 하는 방식이 무난합니다. /init은 기존의 AGENTS.md를 읽어 결과물에 포함시키며, .cursorrules, .devin/rules/, .windsurfrules 등 다른 도구의 설정도 읽습니다.
환경 변수 CLAUDE_CODE_NEW_INIT=1을 붙여 실행하면, /init이 **대화형 다단계 플로우(interactive multi-step flow)**가 됩니다 (현재 제공되는 동작입니다). 무엇을 설정할지(CLAUDE.md, 스킬, 훅)를 묻고, 서브 에이전트(subagent)가 코드베이스를 조사하며, 부족한 부분을 채우기 위한 추가 질문을 하고, 파일을 작성하기 전에 검토 가능한 제안을 보여줍니다. 기본 /init은 W2에서 다루었던
이것이 CLAUDE.md를 비대화시키지 않는 정공법입니다. 특정 경로에서만 의미를 갖는 내용은 상시 로드되는 CLAUDE.md가 아니라 경로 한정 규칙(path-specific rules)으로 분리합니다. 개인용 ~/.claude/rules/는 프로젝트 규칙보다 먼저 읽히므로, 충돌 시 프로젝트 측이 실질적으로 우선됩니다.
세부적인 알려진 동작 (심볼릭 링크와 paths:)
심볼릭 링크를 경유하여(예: 링크된 체크아웃) 파일에 도달했을 때의 paths: 매칭은 2026년 7월 1일(v2.1.198)에 올바르게 작동하도록 수정되었습니다. 그 이전에는 일치하지 않는 경우가 있었습니다.
자동 메모리(Automatic Memory)는 당신이 아무것도 쓰지 않아도 Claude가 세션을 넘나들며 지식을 축적하는 메커니즘입니다. Claude가 향후 대화에 도움이 될지 판단하여 저장합니다(v2.1.59 이후 버전 필요).
- 저장 위치:
~/.claude/projects/<프로젝트>/memory/.<프로젝트>는 Git 리포지토리로부터 결정됩니다(리포지토리 외에서는 프로젝트 루트). 동일한 리포지토리의 워크트리(worktree)나 서브 디렉토리는 하나의 폴더를 공유합니다(autoMemoryDirectory설정으로 변경 가능). - 내용: 입구 역할을 하는
MEMORY.md와 Claude가 생성하는 주제별 파일(debugging.md등).MEMORY.md는 "무엇이 어디에 있는지"에 대한 색인입니다. - 로드 상한: 기동 시 읽히는 것은
MEMORY.md의 앞부분 200행 또는 앞부분 25KB 중 더 빠른 쪽까지입니다(수치는 2026년 7월 기준). 이 상한은MEMORY.md에 대한 이야기입니다. 기동 시 또는 온디맨드(on-demand)로 로드 대상이 된 CLAUDE.md는 길이에 상관없이 전체 내용이 들어옵니다. 주제별 파일은 기동 시에는 읽히지 않으며, 필요할 때 Claude가 직접 엽니다. - 머신 로컬: 동일한 리포지토리의 워크트리 간에는 공유되지만, 다른 머신이나 클라우드 환경에는 동기화되지 않습니다. 커밋한 CLAUDE.md처럼 팀원들에게 배포되지 않습니다.
자동 메모리에 추가하고 싶을 때는 대화에서 그대로 요청하면(예: "앞으로는 npm 대신 pnpm을 사용해줘") Claude가 저장합니다. CLAUDE.md에 추가하려면 "이 내용을 CLAUDE.md에 추가해줘"라고 요청하거나, /memory를 통해 열어서 편집합니다. (#로 시작하는 퀵 메모(quick memo) 표기법은 현재 공식 문서에 기재되어 있지 않습니다.)
- 입문자분들께: 자동 메모리는 보조 수단입니다. Claude가 유용하다고 판단한 학습 내용을 저장하지만, 팀원 모두에게 반드시 읽히고 싶은 전제 조건이나 매번 확실히 지켜야 하는 규칙은 CLAUDE.md에 작성합니다. 기억해야 할 명령어 하나는
/memory입니다. ——현재 로드 중인 CLAUDE.md, 로컬 파일, 규칙을 목록으로 볼 수 있으며, 자동 메모리의 On/Off도 전환할 수 있습니다(환경 변수로 설정하려면CLAUDE_CODE_DISABLE_AUTO_MEMORY=1을 붙여 실행). - 개발자분들께: "200행 / 25KB"는
MEMORY.md의 상한이지, CLAUDE.md의 상한이 아닙니다. 이를 혼동하면 "얼마나 들어갈지"에 대한 예측을 그르칠 수 있습니다.
여기까지의 두 종류와는 별개로, 서브 에이전트(subagent) 메모리가 있습니다. 프론트매터(frontmatter)의 memory 필드를 통해 독자적인 영속 메모리(scope는 user/project/local)를 가질 수 있으며, 공유를 위해서는 project가 권장됩니다. 이는 CLAUDE.md 및 자동 메모리와는 다른 메커니즘이며, 자세한 내용은 별도의 기사에서 다룰 예정입니다.
저장 위치는 "저장용 판단표"에 따라 결정됩니다. 여기서는 왜 해당 계층을 사용하는지에 대해 보충 설명을 합니다.
- 어디서든 매번 필요함 → CLAUDE.md. 항상 읽히므로 핵심 규약(코딩 규약, 빌드 명령어, 프로젝트 구조)이나 "항상 X를 한다 / 절대 X를 하지 않는다"는 내용을 여기에 작성합니다.
- 특정 경로일 때만 →
.claude/rules/(paths:포함). 일치하는 파일을 다룰 때만 작동하여 상시 로드되는 양을 늘리지 않습니다. - Claude가 관찰한 학습 내용 → 자동 메모리. 사람이 부여하는 규칙이 아니라, 작업으로부터 얻은 지견을 Claude 스스로 축적하게 합니다.
- 가끔 사용하는 참조 →
/이름. 온디맨드 로딩 방식으로, 매번 대화의 맥락을 무겁게 만들지 않습니다.
로 부르는 절차 → 스킬 -
예외 없이 반드시 → 후크/권한 규칙 (Hook/Permission Rules). 모델의 판단과 관계없이 클라이언트 측에서 강제됩니다.
동일한 판단을 플로우차트로 보기
"썼는데 적용되지 않는다"는 정체는 하나의 사실로 설명할 수 있습니다. CLAUDE.md의 내용은 시스템 프롬프트 (System Prompt)의 일부가 아니라, 그 뒤에 이어지는 『사용자 메시지 (User Message)』로서 전달됩니다. (시스템 프롬프트는 처음부터 고정되어 전달되는 토대 지시사항이며, 사용자 메시지는 대화 중에 전달되는 입력값입니다.)
Claude는 그것을 읽고 따르려고 노력하지만, 엄격한 준수는 보장되지 않습니다. 특히 모호하거나 모순된 지시일 때 지켜지기 어려워집니다. 원인은 단순히 "길기" 때문만이 아니라, 다음과 같은 세 가지 이유가 있습니다.
비대화 (Bloat): 기준은 파일당 200행 미만입니다. 공식적인 "200행" 기준과 컨텍스트 부패 (Context Rot, 컨텍스트가 길어질수록 모델의 재현 정밀도가 떨어지는 현상)라는 배경을 고려하면, 행이 늘어날수록 정말 중요한 지시사항이 묻힐 수 있다고 판단됩니다. 대책은 가차 없이 깎아내는 것입니다. 지시가 없어도 올바르게 수행할 수 있는 것은 삭제하고, 반드시 일어나길 바라는 일은 후크 (Hook)로 바꿉니다. -
모호함 (Vagueness): 검증할 수 있을 정도로 구체적으로 작성합니다. "코드를 정렬한다"가 아니라 "인덴트(Indent)는 반각 스페이스 2개", "변경 사항을 테스트한다"가 아니라 "npm test를 실행"과 같이 작성합니다. -
모순 (Conflicts): 두 규칙이 (중첩된 CLAUDE.md나 .claude/rules/를 가로질러) 모순되면, Claude는 **둘 중 하나를 임의로 선택 (may pick one arbitrarily)**할 수 있습니다. 이 점은 공식 문서 간에 온도 차가 있는데, features-overview에서는 "Claude가 판단하여 조정하며, 더 구체적인 지시가 우선되는 것이 일반적이다"라고도 적혀 있습니다. 안전하게 접근하려면 "임의로 선택될 수 있음"을 전제로 두고, "구체적인 것이 우선되기 쉽다"는 것은 보장이 아닌 경향성으로 파악해야 합니다.
"절대로 지키게 하고 싶을" 때는 CLAUDE.md를 길고 강한 어조로 만드는 것이 아니라, 목적에 맞는 계층을 구분해서 사용합니다.
| 하고 싶은 것 | 사용하는 계층 |
|---|---|
| 모델의 판단과 무관하게, 반드시 중단/실행 | 후크 · 권한 규칙 (permissions.deny) · 샌드박스 (Sandbox) |
| 시스템 프롬프트와 동일한 높이에 지시를 배치 | CLI 플래그 (매 실행 시 전달되므로 스크립트 · 자동화에 적합) --append-system-prompt |
| 일반적인 행동 지침을 전달 | CLAUDE.md |
후크와 권한 규칙은 모델의 판단과 관계없이 클라이언트 측에서 강제됩니다 (샌드박스나 permissions.deny는 W3에서 다루었습니다). --append-system-prompt는 "더 높은 프롬프트 위치에 두는" 수단이며, 기술적으로 차단하는 것이 아니라는 점이 앞선 두 가지와 다릅니다.
대화가 길어지면 요약을 통해 컨텍스트가 압축됩니다 (/compact). 이때 무엇이 남고 무엇이 사라지는지는 메커니즘마다 다르며, "긴 세션 도중에 규칙을 잊어버린" 원인은 대개 이 표의 첫 번째 줄에 있습니다.
| 메커니즘 | /compact 이후 |
|---|---|
루트의 CLAUDE.md / paths: 없는 규칙 | 디스크에서 재주입됨 |
| 자동 메모리 (Automatic Memory) | 디스크에서 재주입됨 |
paths:가 포함된 규칙 | 일치하는 파일을 다시 읽을 때까지 사라짐 |
| 하위 디렉토리의 중첩 CLAUDE.md | 해당 폴더의 파일을 다시 읽을 때까지 사라짐 |
| 호출된 스킬의 본체 | 재주입됨 (1스킬 5,000 토큰 · 합계 25,000 토큰이 상한. 오래된 것부터 삭제됨) |
| 후크 | 대상 외 (코드로 실행되므로 컨텍스트가 아님) |
| 명령어 | 용도 |
|---|---|
/memory | 현재 읽고 있는 CLAUDE.md · 로컬 규칙 목록 표시. 자동 메모리 On/Off, 폴더 열기 |
/init | 초안 CLAUDE.md 생성 (기존 파일이 있으면 덮어쓰지 않고 제안) |
/compact | 대화를 요약하여 컨텍스트 압축 |
| 이름 | 용도 |
|---|---|
CLAUDE_CODE_NEW_INIT=1 | /init을 대화형 다단계 플로우로 변경 (기동 시 부여) |
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 | 자동 메모리 (Auto Memory)를 비활성화함 |
autoMemoryDirectory 설정 | 자동 메모리의 저장 위치를 변경 (절대 경로 또는 ~/로 시작) |
claude --safe-mode | CLAUDE.md, 플러그인, 스킬, 훅 (Hook), MCP를 모두 비활성화하여 실행 (문제 격리용) |
CLAUDE.md나 훅 (Hook)이 이상하게 동작하는 원인일지도 모른다고 생각되면, claude --safe-mode로 모두 차단한 채 실행하여 격리하는 것이 빠릅니다. 단, managed settings policy 하의 훅 (Hook), 상태 표시줄 (Status line), 파일 후보 명령은 safe-mode에서도 계속 적용됩니다 (조직 배포 설정은 남는다는 점에 주의하세요).
입문자를 위한 안내
- 기억은 크게 두 종류입니다.
CLAUDE.md는 당신이 쓰고, 자동 메모리 (Auto Memory)는 Claude가 씁니다. 둘 다 매번 자동으로 읽힙니다. - 첫 CLAUDE.md는 작게 시작하세요.
/init으로 만들고, Include/Exclude 표를 통해 내용을 줄인 뒤, git에 커밋하여 공유합니다. - "효과가 없는" 원인은 대개 세 가지(길이, 모호함, 모순)이며, 모두 수정 가능합니다.
/memory로 현재 상태를 확인할 수 있습니다.
개발자를 위한 안내
- CLAUDE.md의 4가지 스코프 (Scope)는 **덮어쓰기가 아니라 연결 (Concatenation)**입니다.
settings.json의 우선순위와는 별개의 모델로 작동하며, 모순된 지시가 공존할 경우 임의로 해결될 수 있습니다. - import는 컨텍스트 (Context)를 절약하지 않습니다. 매번 읽어오는 양을 줄이려면, 경로가 한정된
.claude/rules/를 사용하세요. - 반드시 지키게 해야 할 사항은 CLAUDE.md에 의존하지 마세요. 차단해야 하는 것은 훅 (Hook)이나 권한 규칙을 사용하고, 프롬프트 위치에 두려면
--append-system-prompt를 사용하는 등 목적에 따라 구분하여 사용합니다.
다음 단계입니다.
-
입문자라면:
/init으로 만든 파일에서 Exclude 표에 해당하는 행을 삭제해 보세요. 그것만으로도 준수되는 방식이 달라집니다. -
개발자라면: 현재 CLAUDE.md에 작성 중인 내용을 "저장용 판단표"로 분류하여, 경로 한정 사항은
.claude/rules/로, Claude의 학습 내용은 자동 메모리 (Auto Memory)로 옮겨 보세요. -
Memory (CLAUDE.md & auto memory) — 2026-07-04 확인
-
Best Practices — 2026-07-04 확인
-
Features Overview — 2026-07-04 확인
-
Context Window — 2026-07-04 확인
-
Large Codebases — 2026-07-04 확인
-
Subagents — 2026-07-04 확인
-
Commands Reference — 2026-07-04 확인
-
Changelog — 2026-07-04 확인
-
Effective context engineering for AI agents (Anthropic Engineering) — 2026-07-04 확인
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기