Claude Code /compact와 /clear, 언제 쓰나: 같은 세션 갈라 실측
사람이 직접 검수한 글 · 검수 검수 방식
Claude Code가 엉뚱해지기 시작하면 같은 작업은 /compact, 다른 작업은 /clear, 끝까지 지킬 규칙은 CLAUDE.md에 두면 됩니다. 같은 세션을 325K까지 채운 뒤 갈라서 재 보니, /compact는 46K로 줄이고도 처음 대화로 준 규칙을 4번 모두 지켰습니다. 반면 대화로만 준 규칙은 새 대화(/clear 뒤와 같은 상태)로 넘어가지 못했고, 2번 모두 버튼 문구가 바뀌었습니다. 같은 규칙을 CLAUDE.md에 적어 두자 새 대화에서도 2번 모두 지켰습니다.
직접 해 본 결과
- /compact 전후 /context 화면 값, Sonnet 5.5(창 1M)
- 325K → 46K
- 압축 뒤 규칙 지시 없이 2번, 남길 것 지시 2번
- 4/4 지킴
- 새 대화 뒤 규칙 버튼 문구가 '보기'·'확인'으로 바뀜
- 0/2
이런 분께 / 준비물
이런 분께 맞습니다.
- Claude Code로 페이지·도구를 만들다 대화가 길어져 답이 흐려진다고 느끼는 분
/compact와/clear중 무엇을 눌러야 할지 매번 망설이는 분- 처음에 정해 준 규칙을 한참 뒤에 어기는 일을 겪은 분
준비물
- Claude Code(이 글은 2.1.311~2.1.312에서 확인)
- 작업 중인 프로젝트 폴더
- 이 글의 CLAUDE.md 시작 템플릿
웹 채팅(ChatGPT·Claude)에서 같은 증상을 겪는다면 시리즈 1편 AI가 처음 지시를 까먹을 때가 더 맞습니다.
1단계: /context로 얼마나 찼는지 먼저 봅니다
느낌보다 숫자를 먼저 봅니다. 입력창에 /context를 치면 지금 대화가 차지한 공간이 격자와 숫자로 나옵니다.
- Messages: 내가 보낸 말, AI 답, 읽은 파일 내용이 모두 여기에 쌓입니다. 이 실험에서는 한 번 주고받을 때마다 약 48K씩 늘었습니다(예약 자료 파일을 통째로 읽게 했기 때문입니다).
- Free space: 남은 공간입니다. 최신 모델은 창이 1M이라 한참 남아 보입니다.
- Autocompact buffer: 자동 압축을 위해 비워 두는 몫입니다.
창이 넉넉하다고 그냥 두면 안 됩니다. 공식 문서는 오래된 대화가 매 메시지마다 토큰을 쓴다고 안내합니다. 자동 압축도 1M 창 모델에서는 약 967K에서야 일어나므로, 그 전에 직접 정리하는 편이 낫습니다.
2단계: 같은 작업을 이어 갈 땐 /compact
같은 작업을 계속하는데 대화가 길어졌다면 /compact입니다. 지금까지의 대화를 요약 한 장으로 바꾸고 그 위에서 이어 갑니다.
- 얼마나 줄었나: 325.1K → 46.1K입니다. 요약에 걸린 시간은 4번 실행에서 23~73초였습니다.
- 무엇이 다시 들어오나: 공식 문서 기준으로 CLAUDE.md는 디스크에서 다시 읽고, 최근에 읽거나 고친 파일을 최대 5개까지 다시 불러옵니다. 위 화면의
Read app.js,Referenced file …이 그 모습입니다. - 남길 것을 지시할 수 있습니다:
/compact 처음에 정한 규칙과 남은 할 일은 원문 그대로 남겨 줘처럼 뒤에 붙이면 됩니다.
3단계: 다른 작업으로 넘어갈 땐 /clear
전혀 다른 작업을 시작할 때는 /clear입니다. 대화를 비우고 새 대화로 시작합니다.
- 만든 파일은 그대로 남습니다. 지워지는 것은 대화뿐입니다.
- 이전 대화는
/resume으로 다시 열 수 있습니다./clear 이름처럼 이름을 붙여 두면 찾기 쉽습니다. - 대가: 대화로만 말한 규칙과 정보도 함께 사라집니다. 아래 실험의 D가 그 모습입니다.
4단계: 끝까지 지킬 규칙은 CLAUDE.md에
어느 대화에서든 지켜야 하는 규칙은 프로젝트 폴더의 CLAUDE.md 파일에 적습니다. Claude Code는 새 대화를 열 때마다 이 파일을 읽고, 압축 뒤에도 다시 읽습니다.
- 규칙은 짧게, 꼭 필요한 것만 적습니다. 매 대화의 공간을 차지하기 때문입니다.
- 공식 문서는
Compact Instructions라는 제목 아래에 “요약할 때 남길 것”을 적어 두면 압축할 때 반영된다고 안내합니다. #으로 시작하는 줄은 메모가 아니라 제목으로 읽힙니다. 나만 볼 안내문은<!-- -->사이에 넣습니다. 실제로 넣어 보니 이 사이의 글은 지침에 들어가지 않았습니다.- CLAUDE.md 시작 템플릿을 만들어 두었습니다. 그대로 넣었을 때
/context의 Memory files에 447토큰으로 잡혔습니다. 실험 E에서 쓴 규칙 원문도 예시로 넣어 두었습니다.
직접 해본 결과
실험 방법
직접 만든 예제 프로젝트로 긴 세션을 만들고, 같은 지점에서 갈라 비교했습니다.
- 프로젝트: 회의실 예약 페이지(
index.html,app.js)와 가상 예약 자료 6개(월별 900건, 각 약 83KB) - 첫 메시지: 대화로만 규칙 2개와 정보 1개를 줬습니다.
- 규칙 1: 모든 답변의 마지막 줄은 ’— 이상, 예약 도우미’로 끝낸다
- 규칙 2: 화면에 보이는 버튼 문구는 ’예약하기’로만 쓴다(‘등록’, ‘신청’, ‘확인’ 금지)
- 정보: 배포 담당자 ‘한결’, 배포는 매주 목요일
- 긴 세션: “이번 달 자료를 끝까지 읽고 회의실별 건수를 표로 알려 준 뒤, 화면에 보여 주는 함수를 추가해 줘”를 6번 반복했습니다. 이 동안 버튼은 만들지 않았습니다.
- 시험 과제: 갈래마다 “회의실 옆에 버튼을 달고 누르면 이름을 보여 줘”를 주고, 다음 턴에 배포 정보와 규칙 원문을 물었습니다.
긴 세션: 7번 주고받는 동안 규칙은 계속 지켰습니다
| 턴 | 한 일 | /context 전체 | 대화(Messages) | 규칙 1 지킴 |
|---|---|---|---|---|
| 1 | 규칙·정보 전달 | 36.9K | 5.4K | 예 |
| 2 | 1월 자료 읽기 + 함수 추가 | 85.0K | 53.5K | 예 |
| 3 | 2월 | 133.2K | 101.7K | 예 |
| 4 | 3월 | 181.1K | 149.6K | 예 |
| 5 | 4월 | 229.0K | 197.5K | 예 |
| 6 | 5월 | 276.8K | 245.2K | 예 |
| 7 | 6월 | 324.6K | 293.1K | 예 |
같은 지점에서 갈랐을 때: 규칙을 잃은 건 새 대화뿐
| 갈래 | 처리 | 시험 직전 /context | 버튼 문구(규칙 2) | 답 끝 문구(규칙 1) | 배포 정보·규칙 원문 |
|---|---|---|---|---|---|
| A | 그대로 계속 | 326.2K | 예약하기 | 지킴 | 맞음 |
| B | /compact | 42.1K · 41.9K | 예약하기 · 예약하기 | 2/2 | 2/2 원문 그대로 |
| C | /compact + 남길 것 지시 | 41.8K · 41.9K | 예약하기 · 예약하기 | 2/2 | 2/2 원문 그대로 |
| D | 새 대화(/clear 뒤와 같은 상태) | 36.7K · 36.7K | 보기 · 확인 | 0/2 | 0/2 ('모릅니다') |
| E | 규칙을 CLAUDE.md에 두고 새 대화 | 37.0K · 37.0K | 예약하기 · 예약하기 | 2/2 | 2/2 (CLAUDE.md에서 찾음) |
결과에서 눈에 띈 점은 세 가지입니다.
- /compact는 규칙을 요약 맨 앞에 넣었습니다. 압축 요약 4개를 열어 보니 모두 첫 항목에 “대화 내내 지킬 규칙”을 따로 적었고, 규칙 문장이 원문 그대로 들어 있었습니다. 남길 것을 지시하지 않은 B도 같았습니다.
- 새 대화(D)는 규칙을 모른 채 일했습니다. 버튼 문구를 한 번은 ‘보기’, 한 번은 ’확인’으로 달았습니다. ’확인’은 처음에 금지한 말입니다. 배포 정보를 묻자 “모릅니다”라고 답했습니다.
- CLAUDE.md(E)는 새 대화에서도 지켰습니다. 답에 “CLAUDE.md에 적혀 있습니다”라고 출처까지 밝혔습니다.
그래서 언제 무엇을 쓰나
| 상황 | 쓸 것 |
|---|---|
| 같은 작업을 계속하는데 대화가 길어졌다 | /compact (꼭 남길 게 있으면 뒤에 적기) |
| 전혀 다른 작업으로 넘어간다 | /clear |
| 어떤 대화에서든 지켜야 하는 규칙이 있다 | CLAUDE.md에 적기 |
| 지금 얼마나 찼는지 궁금하다 | /context |
| 답이 꼬였는데 대화로 정한 규칙이 많다 | 규칙을 CLAUDE.md로 옮긴 뒤 /clear |
주의할 점과 한계
- 조건이 단순합니다. 규칙을 첫 메시지 한 곳에 몰아서, 짧고 분명하게 줬습니다. 공식 문서는 대화 초반의 자세한 지시가 요약에서 빠질 수 있다고 안내합니다. 규칙이 대화 여기저기 흩어져 있거나 아주 길면 결과가 다를 수 있습니다.
- 횟수가 적습니다. 갈래마다 2번(A는 1번)만 실행했습니다. 경향을 보는 실험이지 확률을 잰 것은 아닙니다.
- 모델 하나만 썼습니다. Sonnet 5.5(창 1M)로만 쟀습니다. 200K 창 모델에서는 같은 분량에서 자동 압축이 먼저 일어납니다.
- D는 /clear를 직접 누른 것이 아닙니다. 헤드리스 실행에서는
/clear대신 같은 폴더에서 새 대화를 열었습니다. 공식 문서상/clear도 빈 대화로 새로 시작하므로 같은 상태로 봤습니다. - 자동 메모리는 비어 있었습니다. Claude Code는 작업하며 배운 것을 스스로 메모(auto memory)해 두기도 합니다. 이 실험의 새 대화에서는 메모가 비어 있었습니다. 평소 쓰던 프로젝트라면 메모 덕분에
/clear뒤에도 일부 규칙이 남을 수 있습니다. - Codex는 재지 않았습니다. 이 PC에 설치돼 있지 않아 Claude Code만 다뤘습니다.
- 사용량은 /context 표시값입니다. 요금제에서 실제로 얼마가 차감되는지는 재지 않았습니다.
자주 묻는 질문
/compact를 하면 처음에 정한 규칙이 사라지나요?
이 실험에서는 사라지지 않았습니다. 첫 메시지에 규칙을 몰아서 준 세션을 4번 압축했는데, 4번 모두 요약 맨 앞에 규칙 원문이 들어갔고 이후 과제도 규칙대로 했습니다. 다만 공식 문서는 대화 초반의 자세한 지시가 요약에서 빠질 수 있다고 안내합니다. 규칙이 대화 여기저기 흩어져 있으면 결과가 다를 수 있습니다.
/clear를 하면 만든 파일도 지워지나요?
아닙니다. /clear는 대화만 비웁니다. 실험에서도 새 대화의 Claude Code는 앞서 만든 app.js를 그대로 읽고 이어서 고쳤습니다. 이전 대화는 /resume으로 다시 열 수 있습니다.
자동 압축은 언제 일어나나요?
모델마다 다릅니다. 공식 문서 기준으로 1M 창을 쓰는 최신 모델(Sonnet 5 이후, Opus 4.7 이후 등)은 약 967K에서, 확장하지 않은 Sonnet 4.6·Opus 4.6은 200K에서 자동으로 압축합니다. /autocompact 명령으로 더 일찍 압축하게 바꿀 수 있습니다.
근거와 출처
직접 해 본 근거
- 직접 측정 2026년 10월 29일, 직접 만든 예제 프로젝트(회의실 예약 페이지와 가상 예약 자료 6개)로 Claude Code 세션을 7번 주고받아 324.6K까지 채웠습니다. 같은 지점에서 다섯 갈래로 나눠 같은 과제를 주고, 처음 대화로 준 규칙이 지켜졌는지 채점했습니다. 갈래마다 2번(그대로 계속은 1번) 실행했습니다.
- 직접 캡처 /context와 /compact 화면은 같은 날 같은 세션을 Claude Code 대화형 화면으로 열어 직접 캡처했습니다. 실행 명령 줄과 계정 표시는 잘라 냈습니다.
- 결과 파일 CLAUDE.md 시작 템플릿과 /compact 지시 문구 예시를 내려받을 수 있습니다. 같은 날 예제 프로젝트에 넣어 Claude Code가 읽는 것(447토큰)을 확인했고, 실험에서 쓴 규칙 원문도 예시로 들어 있습니다.