단원 — 4 요소 ② 공간 (길어지면 썩는다)
Lesson (강의 단원)lecturedraftFri May 08

단원 — 4 요소 ② 공간 (길어지면 썩는다)

별칭: 4 요소 공간 단원 · context rot 단원 · 부패 방지 단원

#4-elements#space#context-rot#compaction#context-engineering#claude-md#lecture-core

한 줄 명제

공간은 유한하다. 한도 안에서도 길어지면 썩는다. 부패는 토큰 한도의 문제가 아니라 attention 분산의 문제다.


강의 흐름 (12 분)

① 공간은 유한하다 (1.5 분)

에이전트의 공간은 컨텍스트 윈도우. 그리고 그것은 유한하다.

모델윈도우
Claude Sonnet200K 토큰
Opus (Pro)200K
Opus (Max)1M
GPT, Gemini(각 모델별 finite buffer)

어느 모델이든 무한한 메모리가 아니다. 모든 에이전트 설계는 결국 — 유한한 버퍼 안에서 무엇을 살리고 무엇을 버릴지의 문제.

상세: term/context-window

② 컨텍스트 부패의 정체 (3 분)

컨텍스트 부패는 토큰 한도 초과가 아니다. 한도 안에서도 — 모델 성능이 점진적으로 떨어지는 현상.

부패의 4 가지 증상:

증상
1. 초반 지시 망각"절대 X 하지 마라" 했는데 30 턴 뒤에 X 함
2. 중복 작업 반복같은 파일을 두 번 읽고, 같은 결론을 두 번 값
3. 세부 사항 흐려짐처음에 정확했던 변수명·경로 가 나중에 비슷한 것 으로 대체됨
4. 확신의 비대칭 증가부정확해질수록 오히려 더 단언적 으로 답함

왜 부패하는가: LLM 은 attention 메커니즘. 컨텍스트가 길어질수록 같은 토큰에 분산되는 attention 의 질이 떨어짐.

200K 윈도우에 50K 만 차 있을 때와 180K 차 있을 때의 모델은 같은 모델이 아니다. 후자는 부패한 모델.

상세: concept/context-rot

③ 한입감이 부패를 막는다 (1.5 분)

여기서 시간 요소 (3 장) 와 공간 요소가 만난다. 한입이 부패를 막는다.

큰 덩어리를 한 턴에 처리하려고 하면 — 도구 결과가 컨텍스트를 부풀린다. 한 파일을 통째로 read 하면 그 결과가 KB 단위로 기록됨. 10 번 read 하면 컨텍스트가 30%, 40% 이미 차 있다. 거기서 모델이 일을 하려면 — 부패한 공간 위에서 일하는 셈.

시간 (한입) 과 공간 (부패) 은 같은 동전의 양면. 한입이 깨지면 공간이 부패하고, 공간이 부패하면 한입이 또 깨진다. 둘은 같이 무너지고, 둘은 같이 풀어야 한다.

④ 7 정적 + 13 동적 + 200줄 CLAUDE.md (2.5 분)

Claude Code 의 시스템 프롬프트는 layered 구조.

정적 7 블록 — Identity · Safety · Tone · Tool list · Tool usage rules · Output format · Response style. 이 7 개는 안 바뀌니까 prompt cache 가 적중. 토큰 비용이 캐시 hit 가격 (보통 1/10) 으로 떨어짐.

동적 13 블록 — CLAUDE.md · working directory · git status · 환경 변수 · 열린 파일 · 플랫폼 · 세션 메타 · MCP manifest · 권한 상태 · 최근 도구 결과 · Compaction 요약 · Memory 파일 · 날짜·로케일. 이건 매 턴 바뀐다.

왜 이렇게 쪼갰는가: prompt cache 가 prefix matching 으로 동작 — 앞부터 같은 토큰 시퀀스가 이어지는 만큼 캐시. 정적이 앞에 있으면 정적 부분이 통째로 cache hit, 동적이 뒤에 있으면 변하는 부분만 miss. 7+13 의 순서 자체가 곧 캐시 전략.

사용자가 직접 통제할 수 있는 레이어거의 유일하게 CLAUDE.md. L1 (Anthropic 본사) 과 L2 (Claude Code 제품팀) 는 우리가 못 건드림. L4 (git/cwd) 는 자동. L3 (CLAUDE.md) 만이 우리 손에 있다.

Anthropic 권장 — 200 줄 이하. 표면적 이유는 토큰 비용. 진짜 이유는 부패 저항. 길수록 adherence (준수도) 가 떨어짐. 200 줄짜리 짧은 CLAUDE.md 는 attention 이 안정되고, 모든 줄이 살아 있고, 캐시 비용도 낮다.

상세: concept/claudemd-as-design-language · term/cache-hit-vs-miss · term/lazy-loading-claudemd

⑤ Compaction 5 층 cascade — 부패의 5 단 처방 (3 분)

공간이 한도에 가까워지면 Compaction 작동. 한 가지 알고리즘이 아니라 5 단 cascade. 가장 싼 처방부터 시도.

이름비용동작
1Budget Reduction0룰 엔진. 도구 결과 cap 적용, 최근 N 턴만 보존 (보통 여기서 끝)
2Snip0정밀 가지치기. 오래된 메시지의 중복·무의미 부분 제거
3Microcompact작은 LLM 호출도구 결과만 LLM 으로 요약. 대화 흐름은 안 건드림
4Context Collapse(실험)feature flag 뒤. 카테고리 단위로 합침
5Auto-Compact큰 LLM 호출마지막 보루. 대화 전체를 한 요약으로 치환. CLAUDE.md 디스크에서 재주입

별도로 Reactive Compact — API 가 413 Payload Too Large 반환하면 위 단계 다 무시하고 5 층을 공격적으로 즉시 호출. 비상 브레이크.

핵심 통찰: 비용이 점진 증가. 1 층 0 원, 5 층 큰 LLM 호출. 가장 싼 처방으로 먼저 막고, 안 되면 다음. 이게 production-grade 부패 관리의 본보기.

워크플로우 시사: 큰 파일을 무심코 read 하면 Microcompact 트리거. grep + 라인 범위 read 패턴 은 Compaction 을 늦춤. 도구를 어떻게 쓰느냐가 부패 진행 속도를 결정.

상세: concept/compaction-5-layer

⑥ 공간 요소의 한 줄 (0.5 분)

공간은 prefix 와 cascade 로만 부패에 저항한다.


4 엔지니어링 통합 기록

본 단원은 공간 = 컨텍스트 엔지니어링 + α 를 기록:

  • 컨텍스트 엔지니어링: 본 단원의 주 무대. CLAUDE.md / 정적 7 + 동적 13 / Compaction 5 층
  • 프롬프트 엔지니어링: CLAUDE.md = 영구 지시어 = 응축된 프롬프트
  • 하네스 엔지니어링: Compaction 5 층 cascade = 모델 바깥 인프라
  • 에이전틱 엔지니어링: 한입 (시간 요소)부패 (공간 요소) 를 막음 — 에이전트의 결정 흐름이 공간을 좌우

→ 4 분야 모두 공간 요소 위에서 기록됨. concept/4-engineering-disciplines 통합 기록 규칙 정합.


다음 단원으로

공간이 짧고 안정적으로 기록되었다. 이제 — 도구가 늘어나도 그 짧은 공간이 무너지지 않게 해야 한다. 다음 단원은 lesson/4elements-connection-mcp-subagent (연결 요소).


출처

60_service/6006 booklet-vibe-coding-4-elements/_combined_book.md §326~392 (4 장 — 공간 — 길어지면 썩는다).