클로드 코드에서 대화 중에 모델 바꾸면 대화 전체가 다시 들어가요: 제 세션에서 한 턴에 270,402토큰

클로드 코드(Claude Code)에서 대화 중간에 모델을 바꾸면, 그때까지 나눈 대화 전체가 새 모델에 다시 입력돼요. 프롬프트 캐시가 모델마다 따로 있어서요. 제 세션 로그에서 재보니 Opus 4.8에서 Fable 5로 바꾼 직후 한 턴에 270,402토큰이 캐시 쓰기로 나갔어요. 바로 전 턴은 1,817토큰이었고요.

Opus로 한참 작업하다가 마무리만 잘하고 싶어서 /model로 Fable을 고르신 적 있으실 거예요. 저도 그랬어요. 그런데 사용량 그래프가 훅 내려가길래 "내가 뭘 눌렀지" 싶어서 로그를 열어봤어요.

추론 레벨을 바꾸는 건 이전 대화에 손을 안 대는데, 모델을 바꾸는 건 전체가 새로 들어가는 참사예요. 제 로그에 찍힌 숫자 그대로 보여드릴게요!

클로드 코드는 매 턴 대화 전체를 다시 보내요

먼저 이 구조부터요. 클로드 코드는 제가 메시지를 보낼 때마다 시스템 프롬프트, 도구 목록, 그리고 지금까지 대화 전체를 통째로 다시 보냅니다. 41만 토큰짜리 대화면 매 턴 41만 토큰이 들어가는 거예요.

그런데도 사용량이 매번 41만씩 깎이지 않는 이유가 프롬프트 캐시예요. 앞부분이 지난 턴과 똑같으면 서버가 저장해둔 걸 다시 쓰고, 그 부분은 캐시 읽기라는 싼 값으로 계산돼요. 새로 붙은 마지막 몇 줄만 캐시 쓰기로 들어가고요.

대화 기록 41만 토큰이 매 턴 통째로 다시 보내지는데, 같은 Opus 4.8이면 Opus 캐시에서 읽기만 하고 0.1배 값이 나가고, /model로 Fable 5를 고르면 Fable 캐시가 비어 있어서 통째로 다시 쓰기가 되고 2배 값이 나간다. 캐시는 모델마다 따로 있다

여기서 핵심이 하나 있어요. 캐시는 모델마다 따로 있습니다. Opus가 저장해둔 캐시를 Fable은 못 써요. 그래서 모델을 바꾸는 순간 Fable 입장에서는 41만 토큰짜리 대화를 처음 보는 거고, 그걸 전부 캐시 쓰기로 넣어야 해요.

앤트로픽 캐시 문서에는 이렇게 적혀 있어요. "모델 전환에는 우회로가 없다. 캐시는 모델 단위다." 도구 목록이나 시스템 프롬프트를 바꾸는 건 메시지 안에 끼워 넣는 우회 방법이 있는데, 모델만은 없다고요.

제 로그에서 확인한 값

클로드 코드는 턴마다 토큰 사용량을 로그 파일에 남겨요. 제 맥에서 30턴 넘게 이어진 세션이 63개였는데, 그중 중간에 모델을 바꾼 세션이 3개였어요. 셋 다 같은 모양이 나왔습니다.

제일 깔끔한 게 8월 20일 세션이에요. Opus 4.8로 158턴을 하다가 Fable 5로 바꿨거든요.

클로드 코드 세션의 턴별 캐시 읽기와 캐시 쓰기 토큰 막대 차트. 전환 전 5턴은 캐시 읽기가 41만 토큰대이고 쓰기는 2천 토큰 아래인데, /model로 Fable 5를 고른 턴에서 캐시 쓰기가 270,402토큰으로 튀고 읽기는 33,073으로 떨어진다. 그다음 턴부터는 다시 읽기 30만 토큰대, 쓰기 수천 토큰으로 돌아온다
  • 전환 직전 턴: 캐시 읽기 418,147, 캐시 쓰기 1,817
  • 전환한 턴: 캐시 읽기 33,073, 캐시 쓰기 270,402
  • 그다음 턴: 캐시 읽기 303,475, 캐시 쓰기 1,710

전환한 턴에 제가 받은 답은 87토큰이었어요. 답을 거의 안 했는데도 27만 토큰이 쓰기로 들어간 거예요.

나머지 두 세션도 같았어요. 8월 17일에 Opus 5에서 Fable 5로 바꾼 세션은 전환 턴에 145,225토큰이 쓰기로 들어갔고, 다른 세션은 198,352토큰이었어요. 대화가 길수록 그만큼 나갑니다.

하나 더, 전환한 턴에도 3만 토큰쯤은 읽기로 잡혔어요. 제 추정으로는 시스템 프롬프트와 도구 목록 앞부분이에요. 이건 어느 세션이든 똑같아서 Fable 캐시에 이미 있었던 거고요. 대화 내용은 이 세션에만 있으니 전부 새로 쓴 거죠.

전체 입력이 41만에서 30만으로 줄어든 것도 보이실 텐데, 앤트로픽 문서상 이전 모델이 만든 생각(thinking) 블록은 다른 모델에 넘어갈 때 버려져요. 그만큼 빠진 걸로 보여요.

값으로 치면 한 턴에 25배

API 가격으로 환산해볼게요. 클로드 코드는 1시간짜리 캐시를 쓰는데, 1시간 캐시 쓰기는 입력 가격의 2배예요. 캐시 읽기는 입력 가격의 0.1배고요.

  • 전환 직전 턴(Opus 4.8): 읽기 418,147토큰에 0.5달러 단가면 약 0.21달러, 쓰기 1,817토큰은 0.02달러. 합쳐서 약 0.23달러
  • 전환한 턴(Fable 5): 쓰기 270,402토큰에 20달러 단가면 약 5.41달러, 읽기 33,073토큰은 0.03달러. 합쳐서 약 5.44달러

한 턴에 약 25배예요. 그 뒤로는 Fable 캐시가 잡혀서 다시 정상으로 돌아오니까, 한 번만 내는 값이긴 해요. 다만 27만 토큰을 한 번에 낸다는 게 문제죠.

Max 요금제로 쓰시면 달러 대신 5시간 사용 한도가 그만큼 깎여요. 사용량이 훅 내려간 게 이거였어요. 모델별 단가는 페이블 5.1 총정리에 정리해뒀는데, 페이블 5.1은 캐시 읽기가 0.025배라 읽기 쪽은 더 싸졌지만 쓰기는 그대로 2배예요.

추론 레벨은 왜 괜찮나요

추론 레벨(effort)을 바꾸는 건 이 문제가 없어요. 페이블 5.1과 Opus 5에서는 레벨 변경이 대화 안에 시스템 메시지 한 줄로 끼워 들어가거든요. 앞부분은 그대로라 캐시가 안 깨져요.

다만 그 전 모델은 다릅니다. Opus 4.8이나 Sonnet 5에서 요청 상단의 effort 값을 바꾸면 문서상 메시지 캐시가 깨져요. 저는 이건 로그로 확인을 못 했어요. 모델 변경만 확인한 거니까, 그 모델을 쓰신다면 레벨도 세션 시작할 때 정해두시는 게 안전해요.

그래서 저는 이렇게 해요

모델은 세션 열 때 정하고 끝까지 갑니다. 중간에 "이건 Fable로 하고 싶은데" 싶으면 새 세션을 열어요. 어차피 캐시가 비어 있는 건 똑같은데, 새 세션은 필요한 맥락만 넣으니까 27만이 아니라 몇만 토큰으로 끝나요.

꼭 같은 세션에서 바꿔야 하면 /compact를 먼저 눌러요. 대화를 요약해서 줄인 다음 바꾸면 새로 쓰는 양이 그만큼 줄어요. 41만을 통째로 넣는 것보다는 낫습니다.

반대로 가벼운 후속 작업은 모델을 내리지 말고 서브에이전트에 시켜요. 메인 대화는 한 모델에 고정하고, 싼 모델이 필요한 일만 따로 떼는 게 문서에서도 권하는 방식이에요.

이런 걸 매주 하나씩 실측해보는 자리가 지피터스 AI 스터디예요. 24기는 9월 21일까지 신청받고, 클로드 코드 주제만 입문부터 고급까지 여러 개 열려 있어요.

자주 묻는 질문

모델을 바꾸면 이전 대화가 사라지나요

아니요, 다 넘어가요. 그래서 비용이 나가는 거예요. 새 모델이 이전 대화를 전부 처음부터 읽어야 하니까요. 대화가 사라지는 게 아니라 다시 읽히는 겁니다.

실제로 몇 토큰이 나가나요

그 시점의 대화 길이만큼이에요. 제 세션에서는 145,225, 198,352, 270,402토큰이 각각 전환 턴에 캐시 쓰기로 들어갔어요. 캐시 쓰기는 입력 단가의 2배로 계산됩니다.

추론 레벨을 바꾸는 것도 같은가요

페이블 5.1과 Opus 5는 아니에요. 레벨 변경이 메시지 안에 끼워 들어가서 캐시가 유지돼요. 그 이전 모델은 문서상 메시지 캐시가 깨지니, 세션 시작할 때 정해두세요.

로그는 어디서 보나요

맥 기준 홈 폴더 아래 .claude/projects 안의 프로젝트 폴더에 세션별 jsonl 파일이 있어요. 각 턴의 usage 항목에 캐시 읽기와 쓰기 토큰이 따로 적혀 있습니다.

인사이트

모델을 바꾸는 게 공짜라고 생각했던 건, 화면에서는 대화가 그대로 이어지니까였어요. 근데 서버 쪽에서는 새 모델이 대화를 처음 만나는 거였고요.

그러니까 클로드 코드에서 모델 선택은 "지금 이 답을 누가 할까"가 아니라 "이 세션 전체를 누가 읽을까"예요. 그 기준으로 고르면 중간에 바꿀 일이 거의 없어요.

바꾸고 싶어질 땐 세션을 새로 여세요. 그게 제일 싸요!


확인일: 2026년 9월 9일. 토큰 수치는 제 맥의 클로드 코드 세션 로그에서 메시지 id 기준으로 중복을 걷어내고 센 값이라 환경마다 다릅니다. 캐시가 모델 단위라는 설명과 effort 변경의 캐시 영향은 앤트로픽 프롬프트 캐시 문서를 따랐어요. 단가는 API 공개 가격 기준입니다.