| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- AI 코딩
- MCP
- OpenAI
- 로컬 llm
- 오픈모델
- Anthropic
- codex
- ai코딩
- 안드로이드 스튜디오
- 바이브코딩
- 무료 LLM
- Gemini
- AI 에이전트
- ChatGPT
- 안드로이드
- 실무
- 오픈웨이트
- cursor
- LLM
- 홍드로이드
- ai 뉴스
- Android
- 무료 ai
- 카드 없이
- GPT-5.6
- claude code
- Claude
- Android Studio
- 개발자
- 앤트로픽
- Today
- Total
홍드로이드의 야매코딩
내가 한 글자도 치기 전에 8,520 토큰 — 컨텍스트의 92퍼센트는 화면에 안 보입니다 본문

컨텍스트 창 · 자동 적재
내 프롬프트는 45 토큰인데
그 앞에 8,520 토큰이 있습니다.
189배입니다. 그리고 그중 7,850 토큰은 터미널에 한 줄도 안 뜹니다. 시스템 프롬프트 설명에 이렇게 적혀 있습니다 — "Always loaded first. You never see it."
대화가 길어지면 컨텍스트가 찬다고들 합니다. 맞는 말이지만 시작점이 0이 아닙니다. 공식 문서에 세션 하나를 토큰 단위로 뜯어놓은 페이지가 있길래 항목별 수치를 전부 꺼내봤습니다. 그러다 캐싱 글·샌드박스 글에서 다뤘던 것과 같은 종류의 조용한 실패를 세 개 더 찾았습니다.
📌 30초 요약
- 예시 세션에서 사용자 입력 전 자동 적재 8,520 토큰. 첫 프롬프트는 45 토큰이었습니다.
- 그 8,520 중 7,850(92퍼센트)은 터미널에 표시되지 않습니다.
- ⚠️ MEMORY.md는 200줄 또는 25KB에서 잘립니다. 넘는 부분은 그냥 안 실립니다.
- ⚠️ 컴팩션 뒤 스킬 목록이 다시 안 실립니다. 실제로 호출한 스킬만 남습니다.
- ⚠️ 요약에서 초반의 상세 지시가 사라질 수 있습니다. 그래서 규칙은 CLAUDE.md에 두라고 합니다.
- 이 8,520은 문서의 예시 값입니다. 내 세션 값은 /context로 직접 재야 합니다.
① 첫 프롬프트 앞에 이미 실려 있는 것들
문서의 예시 세션은 컨텍스트 창 20만 토큰 기준입니다. 사용자가 아직 아무것도 안 쳤는데 아래 일곱 개가 먼저 들어갑니다.
| 자동으로 실리는 것 | 토큰 | 터미널 표시 |
|---|---|---|
| 시스템 프롬프트 | 4,200 | 안 보임 |
| 프로젝트 CLAUDE.md | 1,800 | 안 보임 |
| 자동 메모리(MEMORY.md) | 680 | 안 보임 |
| 스킬 설명 목록 | 450 | 안 보임 |
| 사용자 CLAUDE.md | 320 | 안 보임 |
| 환경 정보 | 280 | 안 보임 |
| MCP 도구 목록(지연 로딩) | 120 | 안 보임 |
| 여기까지 소계 | 7,850 | 전부 안 보임 |
| 규칙 파일 2개(작업 중 로드) | 670 | 한 줄만 |
| 자동 적재 합계 | 8,520 | — |
| 사용자의 첫 프롬프트 | 45 | 보임 |
공식 문서 컨텍스트 창 페이지의 예시 세션 · 창 크기 20만 토큰 기준 · 2026년 8월 14일 조회
창 크기 대비로는 4.3퍼센트입니다. 그 자체로 큰 숫자는 아닙니다. 제가 눈여겨본 건 비율이 아니라 가시성이었습니다. 8,520 중 7,850이 화면에 흔적조차 남기지 않습니다.
왜 이게 문제냐면, 안 보이는 건 줄일 생각도 안 하게 되기 때문입니다. 파일을 읽으면 로그가 뜨니 "아 방금 많이 읽었네" 싶지만, CLAUDE.md 1,800 토큰은 매 요청마다 조용히 실립니다. 문서가 CLAUDE.md를 200줄 아래로 유지하라고 두 곳에서 반복하는 이유도 여기 있습니다.
② 조용히 잘려나가는 세 곳
여기가 이 글의 본론입니다. 셋 다 에러가 안 납니다. 경고도 없습니다. 그냥 있어야 할 게 없는 상태로 계속 굴러갑니다.
① MEMORY.md는 200줄 또는 25KB에서 잘립니다
"The first 200 lines or 25KB, whichever comes first, are loaded into the conversation context."
→ 먼저 닿는 쪽에서 자릅니다. 25KB를 안 넘겨도 201번째 줄부터는 안 들어갑니다. 메모리는 쌓을수록 좋다고 생각하기 쉬운데, 문서 기준으로는 위쪽 200줄만 유효합니다. 같은 문장이 별도 페이지에도 그대로 있어 두 곳에서 일치했습니다.
② 컴팩션 뒤에는 스킬 목록이 다시 안 실립니다
"Unlike the rest of the startup content, this listing is not re-injected after /compact. Only skills you actually invoked get preserved."
→ 시작할 때 실린 것 중 스킬 설명 목록만 예외라고 못박고 있습니다. 컴팩션 후에는 그 세션에서 실제로 호출한 스킬만 남습니다. 즉 안 써본 스킬은 목록에서 사라지고, 그 뒤로는 알아서 꺼내 쓰지 못합니다. 화면에는 "대화가 압축되었습니다"만 뜹니다.
③ 초반의 상세 지시가 요약에서 빠질 수 있습니다
"Your requests and key code snippets are preserved; detailed instructions from early in the conversation may be lost. Put persistent rules in CLAUDE.md rather than relying on conversation history."
→ 요약은 먼저 오래된 도구 출력부터 지우고, 그래도 모자라면 대화를 요약합니다. 이때 초반 지시가 "사라질 수 있다(may be lost)"고 되어 있습니다. 사라진다가 아니라 사라질 수 있다입니다 — 문서가 확정적으로 말하지 않은 부분이라 저도 확정적으로 옮기지 않습니다.
세 번째가 왜 성가시냐면, "아까 말했잖아"가 안 통하는 순간이 조용히 오기 때문입니다. 대화 초반에 "테스트는 항상 pnpm으로"라고 한 문장 던져놓고 세 시간 뒤에 그게 지켜지길 기대하는 건 문서 기준으로도 보장이 아닙니다.
⚠️ 네 번째 — 요약이 아예 멈추는 경우
파일 하나나 도구 출력 하나가 너무 커서 요약하자마자 컨텍스트가 다시 꽉 차버리면, 몇 번 시도한 뒤 자동 요약을 포기하고 에러를 띄웁니다. 무한 루프를 막는 장치입니다. 이건 앞의 셋과 달리 화면에 보입니다 — 조용한 실패가 아니라 시끄러운 실패라서, 오히려 대처가 쉬운 쪽입니다.
③ 이 숫자는 제 것도, 당신 것도 아닙니다
🔍 이 글의 약한 고리를 먼저 적습니다
8,520이라는 숫자는 공식 문서가 만든 예시 세션의 값입니다. 제 PC에서 잰 것도 아니고, 모든 사람에게 해당하는 값도 아닙니다. CLAUDE.md 1,800 토큰은 그 예시 프로젝트의 CLAUDE.md이지 당신 것이 아닙니다.
그래서 이 글이 주장하는 건 "당신 세션도 8,520이다"가 아니라 "시작점이 0이 아니고, 그 대부분은 화면에 안 보인다"까지입니다. 자릿수 감각을 잡는 용도로만 쓰세요. 실제 값은 아래 방법으로 직접 재야 합니다.
# 지금 무엇이 컨텍스트를 먹고 있는지
/context
# MCP 서버별 토큰 비용
/mcp
# 세션 토큰 사용량 + 무엇이 사용량을 끌어올렸는지
/usage
세 개 중 /context가 이 글의 표를 내 것으로 바꿔주는 명령입니다. 문서에서도 "무엇이 자리를 쓰는지 보려면 /context를 돌려라"를 세 페이지에서 반복합니다.
구독 플랜(Pro·Max·Team·Enterprise)이면 /usage가 한 가지를 더 해줍니다. 최근 사용량의 10퍼센트 이상을 차지한 행동에 표시를 붙여줍니다 — 예를 들어 "긴 컨텍스트"나 "캐시 미스" 같은 것들이요. 스킬·서브에이전트·플러그인·MCP 서버별 비중도 나옵니다. 다만 문서가 "근사치이고 이 기기의 로컬 세션 기록에서 계산한다"고 명시합니다. 다른 기기나 claude.ai 사용분은 안 들어갑니다.
④ 컨텍스트가 곧 청구서인 이유
여기서부터는 돈 얘기입니다. 비용 문서에 한 문장으로 정리된 대목이 있습니다.
"a one-line question in a session that has been open all day still draws usage for the whole conversation"
→ 하루 종일 켜둔 세션에서 한 줄짜리 질문을 던져도, 그 대화 전체가 매번 다시 실려 갑니다. 캐시 요율로 읽긴 하지만 공짜는 아닙니다. "질문이 짧으니 싸겠지"가 안 통하는 구조입니다.
그리고 캐싱 글에 못 담았던 캐시 수명 조건이 이 문서에 있었습니다. 이건 새로 찾은 사실이라 표로 따로 뺍니다.
| 상황 | 캐시 수명 | 의미 |
|---|---|---|
| 구독 플랜 | 1시간 | 한 시간 안에 돌아오면 캐시 적중 |
| 사용량 크레딧을 쓰기 시작하면 | 5분 | 같은 계정인데 조건이 바뀝니다 |
| API 키·클라우드 제공사 | 5분(기본) | 잠깐 자리 비우면 전체 재처리 |
비용 문서 기준 · 크레딧 사용 중에도 환경변수 하나로 1시간을 유지하는 방법이 문서에 함께 적혀 있습니다
두 번째 줄이 핵심입니다. 플랜 한도를 넘겨 크레딧으로 넘어가는 순간, 캐시 수명이 1시간에서 5분으로 떨어집니다. 한도를 넘긴 상태에서 띄엄띄엄 쓰면 매번 전체 컨텍스트를 캐시 없이 다시 처리하게 됩니다. 가장 비싸질 수 있는 시점에 조건이 불리해지는 셈입니다.
유휴 상태에서도 토큰이 나가는 경로도 문서가 나열해 뒀습니다.
- 예약 작업 — 세션이 놀고 있어도 주기마다 전체 컨텍스트를 실어 보냅니다.
- 다른 세션에서 온 메시지 — 유휴 세션에 새 턴으로 전달되며, 역시 전체 컨텍스트가 갑니다.
- 에이전트 팀 — 팀원마다 자기 컨텍스트 창을 가집니다. 계획 모드로 돌 때 표준 세션의 약 7배라고 명시돼 있습니다.
- /compact 자체 — 요약하려면 그 대화를 읽어야 하니 컴팩션 자체가 큰 요청입니다.
마지막 줄에 붙은 문장이 실무적으로 제일 쓸모 있었습니다 — "연속성 대신 새 출발을 원하면 /clear는 비용이 0"입니다. 이어서 할 게 아니면 /compact가 아니라 /clear가 맞습니다. 저는 반대로 알고 있었습니다.
⑤ 문서가 권하는 순서대로 줄이기
기능마다 언제 실리고 얼마나 먹는지가 표로 정리돼 있습니다. 옮기면 이렇습니다.
| 기능 | 언제 실리나 | 컨텍스트 비용 |
|---|---|---|
| CLAUDE.md | 세션 시작 · 전문 | 매 요청마다 |
| 스킬 | 시작 시 설명만 · 쓸 때 전문 | 낮음(설명은 매번) |
| MCP 서버 | 시작 시 이름만 · 스키마는 필요할 때 | 쓰기 전까지 낮음 |
| 서브에이전트 | 호출될 때 · 별도 창 | 본 세션과 분리 |
| 훅 | 이벤트 발생 시 · 밖에서 실행 | 0(출력이 없으면) |
확장 기능 문서의 컨텍스트 비용 표 · 값이 아니라 로딩 방식의 분류입니다
이 표를 뒤집으면 줄이는 순서가 나옵니다.
✅ 효과 큰 것부터
- CLAUDE.md를 200줄 아래로. 매 요청에 실리므로 여기가 1순위입니다. 특정 작업에서만 쓰는 절차는 스킬로 옮기라고 명시합니다.
- 안 쓰는 무관한 작업이면 /clear. 비용 0이고, 묵은 컨텍스트가 이후 모든 메시지를 비싸게 만듭니다.
- 내가 직접만 부를 스킬은 숨기기.
disable-model-invocation: true를 넣으면 부르기 전까지 비용이 0이 됩니다. - 출력이 많은 작업은 서브에이전트로. 장황한 출력은 그쪽 창에 남고 요약만 돌아옵니다.
- 훅으로 미리 걸러내기. 1만 줄 로그를 통째로 읽는 대신 훅이 에러 줄만 골라내면 수만 토큰이 수백 토큰이 됩니다.
- 안 쓰는 MCP 서버 끄기. CLI 도구(gh 같은)는 목록 자체가 없어 더 저렴하다고 문서가 권합니다.
4번이 특히 저평가돼 있습니다. 서브에이전트는 CLAUDE.md와 MCP·스킬 설정은 그대로 받되 대화 기록은 안 받고 시작합니다. 예시 세션에서도 서브에이전트가 여섯 단계를 도는 동안 본 세션에 쌓인 토큰은 0이었고, 돌아올 때 요약 420 토큰만 들어왔습니다.
자주 묻는 것
Q. 8,520 토큰이면 돈으로 얼마인가요?
계산하지 않았습니다. 모델마다 단가가 다르고, 이 부분은 캐시 요율로 읽히는 대표적인 구간이라 정가로 곱하면 과대평가가 됩니다. 단가 구조 자체가 궁금하시면 구간 요금과 토큰 세는 법 쪽이 맞습니다.
Q. 컴팩션에서 뭘 남길지 지정할 수 있나요?
네. /compact API 변경 위주로처럼 초점을 함께 적으면 됩니다. CLAUDE.md에 "Compact instructions" 섹션을 만들어 두면 매번 적을 필요도 없습니다. 다만 이건 요청이지 보장이 아닙니다 — 문서도 "무엇을 보존할지 알려주는" 표현까지만 씁니다.
Q. 스킬 목록이 사라진 걸 어떻게 알아채나요?
이건 제가 확인하지 못했습니다. 문서는 "재주입되지 않는다"까지만 말하고 확인 방법은 적어두지 않았습니다. 컴팩션 직후 /context를 돌려 스킬 항목의 토큰이 줄었는지 보는 게 자연스러운 접근이지만, 제가 실제로 재본 게 아니라 추측입니다. 확실한 쪽은 컴팩션 뒤에는 스킬을 이름으로 직접 부르는 것입니다.
✨ 정리하면
컨텍스트는 0에서 시작하지 않습니다. 예시 세션 기준 8,520 토큰이 먼저 실리고, 그중 92퍼센트는 화면에 안 뜹니다.
잘려나가는 곳은 셋입니다 — MEMORY.md 200줄, 컴팩션 뒤 스킬 목록, 초반 지시. 셋 다 에러가 안 납니다.
그래서 "아까 말했잖아"에 기대지 말고 CLAUDE.md에 적으세요. 그리고 지금 /context 한 번 돌려보세요. 이 글의 표가 당신 숫자로 바뀝니다.
🧭 AI 지출 전체 그림
컨텍스트는 안 보이는 지출 중 하나일 뿐입니다. 개인·개발자·회사별로 새는 곳을 묶어둔 허브는 여기입니다 → AI에 쓰는 돈 총정리 — 숨은 비용 7가지
🔗 "조용히 실패하는 것들" 시리즈
- 캐싱은 조용히 실패합니다 — 에러 없이 정가로 청구됩니다
- 샌드박스를 켰는데 안 켜졌을 수 있습니다 — 기본값이 그렇습니다
- 되돌리기가 못 잡는 다섯 가지 — 안 잡혔다는 표시가 없습니다
- 사용량 화면의 숫자가 전부가 아닙니다 — 첫 결제 달에
- 단가가 같아도 청구는 다릅니다 — 토큰을 세는 방식
확인 시점 — 2026년 8월 14일. ✅ 1차 확인(공식 문서 4곳) : 컨텍스트 창 페이지의 예시 세션 34개 이벤트 전체(항목별 토큰·가시성 분류·설명문) · 동작 원리 페이지의 "The context window" 및 "When context fills up" 절 · 비용 문서의 "Reduce token usage" 및 "Why usage climbs in a long session" 절 · 확장 기능 문서의 "Understand context costs" 표. 교차 일치 : MEMORY.md 200줄·25KB 절단과 CLAUDE.md 200줄 권장은 서로 다른 두 페이지에서 같은 표현으로 확인했습니다. 제가 계산한 것 : 7,850·8,520·92퍼센트·4.3퍼센트·189배는 문서에 적힌 개별 항목 값을 제가 직접 합산·나눈 값입니다. 문서에 합계로 제시된 숫자가 아닙니다. 확인하지 않은 것 : 제 실제 세션의 /context 출력과 대조 · 컴팩션 후 스킬 목록이 실제로 빠지는지의 실측 · 항목별 토큰이 모델·버전에 따라 어떻게 달라지는지 · 캐시 요율을 반영한 실제 금액. 일반화 금지 : 본문의 8,520은 문서가 만든 예시 세션의 값이며 보편 상수가 아닙니다. 값은 예고 없이 바뀝니다. 제휴·협찬 없습니다.
'AI & Vibe Coding' 카테고리의 다른 글
| AI와 나눈 대화는 30일 뒤 지워집니다 — 그런데 내가 친 프롬프트는 안 지워집니다 (0) | 2026.08.14 |
|---|---|
| AI가 지운 파일은 되돌리기로 안 살아납니다 — 체크포인트가 못 잡는 다섯 가지 (0) | 2026.08.14 |
| 단가가 같아도 청구는 다릅니다 — 구간 요금과 토큰 세는 법 (0) | 2026.08.14 |
| 다운로드 1위 AI 모델 여덟 개를 봤더니 — 채팅용이 하나도 없었습니다 (0) | 2026.08.14 |
| 샌드박스를 켰는데 안 켜졌을 수 있습니다 — 기본값이 그렇게 되어 있습니다 (0) | 2026.08.14 |
