블로그 / 클로드 해부
클로드 해부 ①

클로드가 세션마다 느려지는 진짜 이유 — 컨텍스트 창 해부

2026.09.08 · 자비스스튜디오
2026.08.20 · 자비스스튜디오

대화가 길어지면 답이 뭉개지고, 아까 말한 걸 또 묻습니다. 모델이 지쳐서가 아닙니다. 책상이 좁아진 겁니다. 이 글은 그 책상 안에서 실제로 무슨 일이 벌어지는지 뜯어봅니다.

1. 바보가 된 게 아니라, 책상이 좁아진 겁니다

클로드를 오래 쓰신 분이라면 이런 경험이 있으실 겁니다. 처음 30분은 날아다니는데, 두 시간쯤 지나면 방금 정한 규칙을 잊고 이미 고친 파일을 또 고칩니다.

흔한 해석은 "대화가 길어져서 헷갈린 것"입니다. 절반만 맞습니다. 정확히는 모델이 한 번에 올려놓을 수 있는 책상 넓이가 정해져 있고, 그 위가 이미 꽉 찼다는 뜻입니다. 이 책상을 컨텍스트 창(context window)이라고 부릅니다.

2. 클로드는 대화를 기억하지 않습니다 — 매번 백지에서 시작합니다

여기가 신입들이 제일 많이 헷갈리는 지점입니다. 화면에는 대화가 죽 이어져 보이니, 클로드가 앞의 내용을 기억하고 있다고 느낍니다.

아닙니다. 요청 하나하나가 전부 첫 만남입니다. 여러분이 새 메시지를 보낼 때마다, 지금까지의 대화 전체 + 규칙 파일 + 읽은 파일들이 통째로 다시 모델 앞에 놓입니다. 모델은 그걸 처음 보는 것처럼 읽고 답합니다.

사람으로 치면 이렇습니다. 매일 아침 기억을 잃는 직원이 있는데, 대신 책상 위 서류를 순식간에 다 읽습니다. 어제 일을 아는 게 아니라, 어제 남긴 메모를 다시 읽는 겁니다.

챗GPT 대화창과 겉보기는 같습니다. 다른 건 과금과 성능이 갈리는 지점입니다 — 대화가 길어질수록 매 요청이 무거워지고, 책상이 차면 앞쪽부터 밀려납니다. 그래서 "아까 그거"가 사라집니다.

3. 그 책상에 제일 먼저 올라가는 건 「사규」입니다

클로드 코드를 쓰신다면 CLAUDE.md라는 파일을 두셨을 겁니다. 프로젝트 규칙을 적어두면 매번 설명하지 않아도 되는 파일입니다.

편한 만큼 대가가 있습니다. 이 파일은 매 세션 자동으로 책상에 올라갑니다. 일을 시작하기도 전에 자리를 먹는 고정비입니다. 그리고 대부분은 이 고정비가 얼마인지 한 번도 재보지 않습니다.

규칙 파일 말고도 도구·스킬 목록이 함께 올라갑니다. 그 재고를 실제로 세어본 기록은 클로드 코드에 202개를 깔아봤습니다에 정리해 뒀습니다.

4. 재보면 이렇습니다

저희 규칙 파일을 실제로 쟀습니다.

51,116자 · 2,301줄 — 매 세션 대략 3만~4만6천 토큰.
그중 1,360줄(59%)이 빈 줄이었고, 그 가운데 775줄은 지워도 정보가 하나도 안 줄어드는 잉여였습니다.

더 나빴던 건 구조였습니다. 제일 큰 덩어리가 「영문 블로그」라는 제목을 달고 있었는데, 그 안에 카드뉴스·릴스·게시 형식이 328줄 중 298줄을 차지하고 있었습니다. 제목과 내용이 어긋나면 찾을 수가 없습니다. 그래서 매번 전부 읽게 됩니다.

5. 지우지 말고 옮깁니다

줄이는 방법은 하나뿐인 것 같지만 둘입니다. 지우거나, 옮기거나. 지우면 나중에 그 규칙이 없어서 같은 사고를 반복합니다. 그래서 옮겼습니다.

결과: 51,116자 → 26,808자 (48% 감소).
옮긴 482줄이 전부 목적지에 있는지 기계로 대조했습니다 — 손실 0.

중요한 건 감소율이 아니라 어떤 종류의 글자를 덜어냈는가입니다. 매 세션 필요한 것만 남기고, 가끔 필요한 것은 가끔 읽히게 했습니다.

6. 가져가세요 — 그대로 복붙하시면 됩니다

세 가지를 드립니다. 게이트 없습니다.

① 내 규칙 파일이 얼마나 무거운지 재는 한 줄

node -e "const s=require('fs').readFileSync('CLAUDE.md','utf8'),L=s.split('\n');console.log('줄',L.length,'· 빈 줄',L.filter(l=>!l.trim()).length,'· 문자',s.length,'· 대략 토큰',Math.round(s.length/1.4))"

먼저 재보세요. 대부분 예상보다 큽니다.

② 잉여 빈 줄만 걷어내는 한 줄 (정보 손실 0)

node -e "const f='CLAUDE.md',fs=require('fs');let n=0;fs.writeFileSync(f,fs.readFileSync(f,'utf8').split('\n').filter((l,i,a)=>!(l.trim()===''&&a[i-1]!==undefined&&a[i-1].trim()==='')).join('\n'));console.log('정리 완료')"

먼저 백업하세요: cp CLAUDE.md CLAUDE.md.bak

③ 규칙 파일 뼈대 — 판단만 남긴 골격

# 프로젝트 규칙

## 🗺 어디를 봐야 하나 — 먼저 이 표를 본다

**전부 읽지 않는다.** 아래에서 필요한 줄만 찾아 그 파일 하나만 연다.
이 파일은 **판단 기준**만 갖는다. 절차·형식·코드는 여기 없다.

| 무엇을 하려는가 | 어디로 |
|---|---|
| 무엇을 먼저 하나 (우선순위·금지) | 이 파일 아래 |
| 〈작업 A〉 절차 | 📖 docs/a.md |
| 〈작업 B〉 절차 | 📖 docs/b.md |
| 지난 결정 기록 | 📖 log.md |

## 하면 안 되는 것
- (되돌리기 어려운 일 — 삭제·배포·발송은 확인 없이 실행하지 않는다)

## 먼저 하는 것
- (순서가 중요한 일)

⚠ 규칙을 바꾸면 **정본 한 곳만** 고친다. 여기에 옮겨 적으면 두 벌이 되고 시간이 지나 어긋난다.
⚠ 옛 규칙은 지우지 말고 취소선 + 폐기 표시 + 정본 링크를 단다.

7. 다음 편

책상 넓이를 알았으니, 다음은 그 위에 올라가는 「사규」 자체를 해부합니다. 시스템 프롬프트와 내가 쓴 프롬프트는 무엇이 다른지, 왜 어떤 규칙은 먹히고 어떤 규칙은 무시되는지.

「클로드 해부」는 6편으로 갑니다 — 컨텍스트 창 · 시스템 프롬프트 · 토큰 · 도구 사용 · 스킬과 에이전트 · 모델 선택. 매 편 복붙해서 바로 쓰는 것을 하나씩 드립니다.

그대로 가져가세요

위의 셋을 한 파일로 묶었습니다. 회원가입도 댓글도 필요 없습니다.

의존성 없습니다. Node만 있으면 두 명령 모두 바로 돌아갑니다. 먼저 백업하세요cp CLAUDE.md CLAUDE.md.bak

실측 위주 AI 뉴스레터 — 직접 돌려보고 되는 것만 골라 매주 보내드립니다.

#클로드코드 #컨텍스트윈도우 #claudecode #AI자동화 #개발자도구 #바이브코딩 #생산성 #1인개발 #자비스스튜디오