본문으로 건너뛰기
H
Harness 101
학습 경로/Act 3 — 규모/11. Context Compact
Context·중급·60분

Claude가 느려졌다

“컨텍스트는 반드시 찬다. 공간을 만드는 방법이 필요하다”

07. Context Compact — 잊는 게 아니다, 치워두는 것이다

이전 이야기에서: 지민은 MCPs로 외부 서비스를 연결하고, Security로 보안 경계를 설정했다. 도구, 지식, 컨텍스트, 권한 — 네 레이어가 모두 작동하기 시작했다. Stripe 결제 연동에 2시간을 쏟았다. 그리고 Claude의 응답이 느려지기 시작했다...

"Context will fill up; you need a way to make room" — Harness Engineering


"Claude가 느려졌다"

Stripe 결제 연동 작업 2시간째. 지민은 이상함을 느꼈다.

Claude의 응답이 느려졌다. 3초 걸리던 대답이 8초가 됐다. 더 이상한 건 품질이었다. 방금 읽은 파일 내용을 잊어버린 것 같았다.

지민: 현재 컨텍스트 상태는?
Claude: "현재 사용량: 87%"

87%. 30개 파일을 읽고, MCP 툴을 20번 호출하고, 대화 30턴을 나누는 동안 — messages 배열이 한계에 다가가고 있었다.

그런데 근본적인 물리적 제약이 있었다.

Claude의 context window는 유한하다.

대화 내용, 파일 읽기 결과, 커맨드 출력... 이 모든 것이 messages 배열에 쌓인다.

messages = [
    { role: "user", content: "인증 시스템 구현해줘" },
    { role: "assistant", content: "읽어볼게요..." },
    { role: "user", content: "[tool_result] src/auth.ts 내용 (2000줄)..." },  ← 8000 토큰
    { role: "assistant", content: "..." },
    { role: "user", content: "[tool_result] tests/auth.test.ts (500줄)..." },  ← 2000 토큰
    { role: "assistant", content: "..." },
    { role: "user", content: "[tool_result] npm test 출력..." },               ← 1000 토큰
    ...
    [30개 파일 * 평균 3000토큰 = 90,000 토큰]
    [+ 대화 내용 10,000 토큰]
    [= 100,000 토큰... 한계 접근]
]

대형 코드베이스를 다루거나, 오래 걸리는 작업을 하면 context가 꽉 찼다. Claude가 더 이상 생각할 공간이 없었다.