프롬프트 vs CLAUDE.md vs Skill — 정확히 뭐가 다른가
Claude를 웹/데스크탑 채팅창에서 쓰는 것과, Claude Code로 (로컬이든 서버든) 프로젝트 루트에 CLAUDE.md를 두고 쓰는 것은 겉보기엔 비슷해 보이지만 컨텍스트 로딩 메커니즘 자체가 다릅니다. 이 문서는 그 차이를 사실 기반으로 정리합니다.

1. 4가지 레이어부터 구분
Claude에는 성격이 다른 4가지 "지속 지시" 레이어가 있습니다.
| 레이어 | 어디서 설정 | 적용 범위 | 저장 위치 |
|---|---|---|---|
| Profile Preferences | claude.ai 설정 → 프로필 | 모든 대화 | Anthropic 계정 |
| Project Custom Instructions | claude.ai Projects 기능 | 해당 프로젝트 내 모든 대화 | Anthropic 계정 |
| CLAUDE.md | 프로젝트 루트 디렉토리 | Claude Code로 그 폴더를 열 때만 | 실제 파일시스템(로컬 또는 서버) |
| Skill (SKILL.md) | .claude/skills/ 또는 계정에 업로드 |
조건 매칭될 때 | 실제 파일시스템 또는 계정 |
핵심은: Profile/Project 설정은 Anthropic 서버에 저장된 계정 데이터이고, CLAUDE.md/Skill은 실제 디스크에 있는 파일이라는 점입니다. 이 차이가 아래 모든 동작 차이의 원인입니다.
2. 로딩 시점과 방식 비교
| 항목 | Profile Preferences | Project Instructions | CLAUDE.md | Skill |
|---|---|---|---|---|
| 로딩 시점 | 매 대화 시작 시 항상 | 해당 Project 대화 시작 시 항상 | Claude Code 세션 시작 시 항상 | 세션 시작 시 이름+설명만, 본문은 필요할 때 |
| 컨텍스트 상주 여부 | 대화 내내 상주 | 대화 내내 상주 | 세션 내내 상주 | 트리거 전까지는 상주 안 함(설명만 상주) |
| 매번 다시 써야 하나 | 아니오, 계정 설정이라 자동 | 아니오, Project 설정이라 자동 | 아니오, 폴더 열면 자동 | 아니오, 매칭되면 자동 |
| 새 대화/새 세션에서 | 그대로 유지 (계정 단위) | 그대로 유지 (Project 단위) | 그대로 유지 (같은 폴더면) | 설명은 재로딩, 본문은 다시 판단해서 로딩 |
| 파일 수정 시 반영 | 저장 즉시 다음 대화부터 | 저장 즉시 다음 대화부터 | 실시간 반영(파일 감시), 재시작 불필요 | 다음 트리거 시 반영 |
3. 로컬 작업 vs 서버 작업 — 메커니즘은 동일
"로컬 XAMPP는 멈추고 서버에서 작업" 같은 상황에서 자주 헷갈리는 부분인데, 답은 간단합니다.
CLAUDE.md와 Skill의 동작 방식은 파일이 로컬 디스크에 있든, SSH로 접속한 원격 서버에 있든 완전히 동일합니다. Claude Code(또는 Desktop Commander 같은 도구)는 bash 명령으로 파일시스템에 접근하는데, 그 파일시스템이 D:\xampp\htdocs\kguide든 원격 서버의 /var/www/kguide든 "프로젝트 루트에서 CLAUDE.md를 읽는다"는 로직 자체는 바뀌지 않습니다.
바뀌는 것은 어느 디렉토리를 프로젝트 루트로 인식하느냐뿐입니다. 즉:
- 로컬 작업 시 →
D:\xampp\htdocs\kguide\CLAUDE.md를 읽음 - 서버 작업 시 (SSH 등으로 접속) → 서버 쪽 프로젝트 루트의
CLAUDE.md를 읽음 - 두 위치에 각각 다른 CLAUDE.md를 두면, 지금 작업 중인 경로 기준으로 그 파일만 로딩됨 (동기화는 자동으로 안 됨 — 로컬용/서버용 CLAUDE.md를 별도 관리하거나 Git으로 동일 파일을 공유해야 함)
claude.ai 웹 채팅창은 이 파일시스템 접근 자체가 없으므로 (업로드한 파일만 인식) CLAUDE.md 개념이 존재하지 않습니다. 이게 claude.ai와 Claude Code의 근본적 차이입니다.
4. "프롬프트"와의 차이
여기서 "프롬프트"는 대화 중 사용자가 직접 타이핑하는 지시문을 말합니다.
- 1회성: 그 대화가 끝나면(또는 다른 새 대화를 열면) 사라짐. 다시 쓰려면 다시 입력해야 함.
- 즉시 전체가 컨텍스트에 들어감: Skill처럼 "필요할 때만" 로딩되는 단계가 없음. 입력하는 순간 전량이 토큰으로 소모됨.
- CLAUDE.md/Skill이 대체하는 것이 바로 이것: 매번 반복 입력하던 프롬프트를 파일로 고정해서 자동 로딩되게 만든 것.
5. Skill이 claude.ai와 Claude Code에서 다르게 동작하는 부분
Skill의 3단계 점진적 로딩(이름/설명 → 본문 → 참조파일) 자체는 claude.ai, Claude Code, API 전 영역에서 동일한 설계입니다. 다만 인터페이스 차이가 있습니다.
| claude.ai (웹/데스크탑 채팅) | Claude Code (CLI/터미널) | |
|---|---|---|
| 수동 호출 방법 | 없음 (대화 맥락으로만 자동 판단) | /스킬명으로 직접 호출 가능 |
| 자동 호출 | 있음 (description 매칭) | 있음 (description 매칭) |
| 세션 종료 후 | 대화 종료 시 컨텍스트 소멸 | 세션 종료 시 컨텍스트 소멸 |
| 본문 캐싱 | 같은 대화 내에서만 유지 | 같은 세션 내에서만 유지, 압축(compact) 시 재주입 |
6. 컨텍스트 메모리 한계 — 공통 사실
레이어와 무관하게 모든 Claude 인터페이스에 적용되는 원칙:
- 컨텍스트 윈도우는 턴 수가 아니라 토큰(텍스트량) 기준으로 관리됩니다.
- 대화가 길어져 한도에 가까워지면, 오래된 내용부터 요약(compaction)되어 세부 문구가 흐려질 수 있습니다. 완전 삭제가 아니라 압축입니다.
- claude.ai 웹 채팅창은 실시간 토큰 사용량을 사용자에게 노출하지 않습니다. Claude Code는
/context명령으로 실시간 확인이 가능합니다. - 새 대화/새 세션을 열면 컨텍스트는 완전히 리셋됩니다. Profile Preferences, Project Instructions, CLAUDE.md는 파일/설정으로서 다시 자동 로딩되지만, "직전 대화의 세부 내용"은 넘어가지 않습니다.
- claude.ai의 memory 기능(과거 대화에서 요약 추출)은 위 4가지 레이어와는 완전히 별개의 백그라운드 시스템입니다.
7. 실무 정리
| 상황 | 쓸 것 |
|---|---|
| 모든 대화에서 지키길 원하는 개인 규칙 (말투, 언어 등) | Profile Preferences |
| 특정 프로젝트(예: kguide) 관련 배경지식, 반복 참조할 문서 | Project Custom Instructions / Knowledge |
| 코드/파일이 실제로 존재하는 폴더에서 매 세션 자동으로 알아야 할 규칙 (백업 규칙, 파일 크기 제한, 기존 구조 유지 원칙 등) | CLAUDE.md (그 프로젝트 루트에) |
| 3회 이상 반복되는 정형화된 작업 절차 (블로그 포스팅 생성, 특정 문서 포맷 변환 등) | Skill |
| 한 번만 필요한 특수 지시 | 그냥 프롬프트로 직접 입력 |
8. 확인이 필요한 부분 (수치 관련 주의)
Profile Preferences 1,500자, Project Instructions 약 8,000자 같은 구체적 글자수 제한은 Anthropic 공식 문서에서 명시적으로 확인되지 않았고, 커뮤니티/서드파티 블로그에서 보고된 수치입니다. 정확한 최신 제한값은 claude.ai 설정 화면에서 직접 확인하거나 support.claude.com에서 확인하는 것이 정확합니다.



댓글 0