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

클로드 코드가 매 대화마다 읽는 폴더 — 규칙 167KB를 46KB로

2026.09.11 · 자비스스튜디오

클로드가 갈수록 굼떠진다면, 대화가 길어져서가 아닐 수도 있습니다. 질문을 받기도 전에 이미 읽고 있는 폴더가 하나 있습니다. 저희 것을 열어보니 167,397 바이트였고, 그 안에 한 번도 쓴 적 없는 중국어 번역본이 들어 있었습니다.

1. 먼저, 3초짜리 확인

설명보다 숫자가 빠릅니다. 터미널에 이 한 줄을 치세요.

find ~/.claude/rules -name "*.md" -exec cat {} + | wc -c

숫자가 나왔다면, 그게 여러분이 아무 질문도 하기 전에 매 대화마다 나가는 고정비입니다. 폴더가 없다는 결과가 나왔다면 이 글은 아직 남 얘기입니다 — 대신 컨텍스트 창 해부 편의 CLAUDE.md 재는 명령으로 가세요.

이런 소식, 남들보다 먼저 받으실 분?
직접 돌려보고 되는 것만 골라 매주 보내드립니다. 광고성 하이프는 거릅니다.

📮 뉴스레터 신청

2. 왜 안 물어봐도 읽나

클로드 코드에는 프로젝트마다 두는 규칙(CLAUDE.md)과 어느 폴더에서 일하든 따라붙는 전역 규칙이 따로 있습니다. 후자를 ~/.claude/rules/ 같은 자리에 모아두는 방식이 널리 쓰입니다. 규칙 묶음을 배포하는 저장소들이 대부분 이 구조를 권합니다.

편한 만큼 대가가 있습니다. 그 폴더의 .md 는 대화가 시작될 때 통째로 컨텍스트에 실립니다. 여러분이 파이썬 작업을 하든 웹 작업을 하든, 폴더에 들어 있는 건 전부 읽힙니다. 안 쓰는 파일이라고 건너뛰지 않습니다.

이게 왜 비용인지는 클로드가 세션마다 느려지는 진짜 이유 — 컨텍스트 창 해부에서 뜯어봤습니다. 한 줄로 줄이면: 클로드는 매 요청을 처음부터 다시 읽습니다. 고정비는 한 번이 아니라 매번 나갑니다.

3. 저희 폴더를 열어봤습니다

실측 날짜는 2026년 9월 10일, 정리 직전 값입니다.

구분폴더bytes
쓰는 것common/16,642
web/14,380
typescript/7,124
python/3,231
README.md5,264
안 쓰는 것zh/ (중국어 번역본)17,634
언어 10종 (dart · rust · java · kotlin · csharp · php · perl · swift · cpp · golang)103,698
안 쓰는 것 합계121,332

폴더별로 쪼개 보는 것도 한 줄이면 됩니다.

cd ~/.claude/rules && for d in */; do echo "$d $(cat $d*.md | wc -c)"; done

167,397 바이트 중 121,332(72%)가 한 번도 안 쓴 것이었습니다.
dart 규칙이 제일 컸는데, 저희는 Flutter 앱을 만들지 않습니다.

카드뉴스 터미널 화면에는 같은 파일들을 지금 다시 잰 값 167,973이 찍혀 있습니다. 정리하면서 README.md 맨 위에 "무엇을 왜 옮겼는지" 안내문 576바이트를 덧붙였기 때문입니다. 정리 직전 값이 167,397입니다 — 재보는 시점을 같이 적어두지 않으면 이런 차이가 나중에 설명이 안 됩니다.

4. 같은 내용이 두 벌 있었습니다

제일 어이없던 건 zh/ 였습니다. 파일 목록을 맞대보니 이렇습니다.

$ diff <(ls rules/common) <(ls rules-보관/zh)
0a1
> README.md

$ head -1 rules/common/coding-style.md
# Coding Style
$ head -1 rules-보관/zh/coding-style.md
# 编码风格

파일 이름이 열 개 전부 같습니다. 다른 건 README.md 하나뿐이고, 내용은 common/ 을 중국어로 옮긴 번역본이었습니다. 규칙 묶음 저장소가 다국어 사본을 같이 넣어 배포하는데, 설치할 때 폴더를 통째로 복사하면 안 쓰는 언어판까지 따라옵니다.

저희는 클로드와 중국어로 대화한 적이 한 번도 없습니다. 그런데 그 17,634 바이트가 매 대화마다 실려 있었습니다. 한자는 토큰 효율이 좋은 편이라 바이트로는 작아 보여도 토큰으로는 1만 안팎을 먹습니다. 번역본 하나가 그렇습니다.

⚠ 여러분 폴더에 중국어판이 있을 거라는 얘기가 아닙니다. 안 쓰는 언어 폴더가 있을 확률이 높다는 얘기입니다. 실제로 확인해보는 데 3초 걸립니다.

5. 지우지 말고 옮깁니다

줄이는 방법은 둘입니다. 지우거나, 옮기거나. 지우면 반년 뒤에 Rust 프로젝트를 시작할 때 그 규칙이 없어서 같은 사고를 반복합니다. 그래서 옮겼습니다.

cd ~/.claude/rules
mkdir -p ../rules-보관
mv cpp csharp dart golang java kotlin perl php rust swift zh ../rules-보관/

그리고 README 맨 위에 되돌리는 법을 적어둡니다. 이게 핵심입니다 — 안 적어두면 옮긴 순간부터 없는 것과 같아집니다.

> ⚠ 2026-09-10 — 안 쓰는 규칙 11종을 `../rules-보관/` 으로 옮겼습니다.
> 이 폴더의 .md 는 전부 매 세션 컨텍스트에 실리는 고정비라서,
> 실제로 쓰는 것만 남겼습니다: common · typescript · web · python.
> 되돌리려면: `mv ../rules-보관/<이름> .`

결과: 167,397 → 46,641 바이트 (72% 감소).
파일은 하나도 지우지 않았습니다. 필요해지면 mv 한 번이면 돌아옵니다.

중요한 건 감소율이 아니라 무엇을 덜어냈는가입니다. 매 대화에 필요한 것만 남기고, 가끔 필요한 것은 가끔 꺼내 쓰게 했습니다. 클로드 코드에 202개를 깔아봤습니다 편에서 재고를 세어본 적이 있는데, 그때도 결론은 같았습니다 — 깔아둔 것과 쓰는 것은 다릅니다.

6. 그대로 복붙하세요

게이트 없습니다. 순서대로 세 줄입니다.

① 내 규칙 폴더가 몇 바이트인지

find ~/.claude/rules -name "*.md" -exec cat {} + | wc -c

② 폴더별로 쪼개 보기 — 범인을 찾는 줄

cd ~/.claude/rules && for d in */; do echo "$d $(cat $d*.md | wc -c)"; done

③ 지우지 않고 옮기기 (+ 되돌리기)

# 옮기기 — 폴더 이름은 ②에서 나온 것 중 안 쓰는 것으로 바꾸세요
cd ~/.claude/rules
mkdir -p ../rules-보관
mv rust swift cpp ../rules-보관/

# 되돌리기
mv ../rules-보관/rust .

먼저 한 번에 다 옮기지 말고 제일 큰 폴더 하나만 옮겨보세요. 며칠 써보고 아쉬운 게 없으면 나머지를 옮깁니다. 되돌리는 비용이 mv 한 번이라 부담이 없습니다.

7. 이어지는 글

이 편은 컨텍스트 창 해부의 속편입니다. 거기서 "책상이 좁아진다"고 했던 그 책상에, 실제로 제일 먼저 올라가는 것이 무엇인지 열어본 편입니다.

다음은 그 위에 올라가는 「사규」 자체 — 시스템 프롬프트와 내가 쓴 규칙은 무엇이 다른지, 왜 어떤 규칙은 먹히고 어떤 규칙은 무시되는지입니다.

그대로 가져가세요

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

의존성 없습니다. 셋 다 셸 한 줄입니다. 옮기기 전에 ②를 먼저 돌리세요 — 무엇을 옮길지는 숫자가 정해줍니다.

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

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