포스트

28턴의 침묵, 그리고 10장의 폭발 — Claude Sonnet 4 Extended Thinking

28턴의 침묵, 그리고 10장의 폭발 — Claude Sonnet 4 Extended Thinking
  • 작성일: 2026-04-12
  • 목적: RummiArena AI 대전에서 Claude Sonnet 4가 보여준 “관찰 → 축적 → 폭발”의 기술적 배경과 의미 탐구

들어가며

T30. 37.5초. 10장의 타일.

이 세 개의 숫자를 처음 본 순간, 나는 로그를 두 번 다시 읽어야 했다. 2026-04-11, BUG-GS-005 수정 후 검증 대전에서 Claude Sonnet 4가 남긴 기록이다. T2부터 T28까지 14번의 AI 턴 동안 단 한 장의 타일도 내려놓지 않고 조용히 Draw만 반복하던 이 모델이, T30에 들어서자마자 37.5초만에 10장을 한 번에 배치했다.

10장이다.

숫자만 보면 그저 “특이한 전략”처럼 보일지도 모른다. 그러나 루미큐브를 조금이라도 해본 사람이라면, 10장을 한 번에 내려놓는다는 것이 얼마나 복잡한 조합 문제인지 안다. 유효한 그룹과 런을 동시에 여러 개 구성하면서, 각 세트가 최소 3장 이상이 되도록 맞추고, 경우에 따라 조커의 사용도 고려해야 한다. 이것은 단순히 “좋은 수 한 번”이 아니다. 게임 전체에 대한 누적된 판단의 결정화다.

28턴의 침묵 동안 Claude는 무엇을 하고 있었을까? 왜 그렇게 오래 기다렸을까? 그리고 그 기다림은 전략적으로 옳은 선택이었을까? 이 글은 Claude Sonnet 4의 extended thinking이 만드는 이 극적인 서사를 해부한다. 아키텍처의 관점에서, 벤치마크의 관점에서, 그리고 루미큐브라는 게임이 사고에 부과하는 제약의 관점에서.

Claude는 가장 비싼 모델이다. Claude는 가장 극적인 전략을 쓴다. Claude는 WS_TIMEOUT에 가장 취약하다. 이 세 가지 사실은 서로 무관한 듯 보이지만, 사실은 하나의 뿌리에서 자란 가지들이다. 오래 생각하고 크게 움직이는 모델이라는 본질.


목차


1. Extended Thinking이라는 이름의 방식

Anthropic이 2025년 Claude 3.7 Sonnet에서 처음 도입하고 Claude 4에서 본격화한 “extended thinking”은 다른 추론 모델들과 근본적으로 다른 철학 위에 서 있다.

OpenAI의 o1/o3 시리즈는 추론을 내부화했다. 모델이 응답을 생성하기 전에 긴 chain-of-thought를 내부에서 수행하고, 최종 결과만 사용자에게 보여준다. 추론 토큰은 과금되지만 접근할 수 없다. DeepSeek R1은 추론 토큰에 대해 <think> 태그를 열어 일부 공개하지만, 여전히 “한 번 생각하고 한 번 답한다”는 기본 구조를 유지한다.

Claude의 extended thinking은 다르다. 이것은 “생각의 단계를 명시적으로 분리” 한다는 개념이다. 요청이 들어오면 모델은 먼저 “thinking” 단계에서 추론을 수행하고, 그 추론 내용을 API 응답의 별도 필드(thinking)로 반환한다. 그 다음 “text” 단계에서 최종 응답을 생성한다. 개발자는 thinking 내용을 볼 수 있다(단, 단순 통과만 허용되고 수정·재인코딩은 금지된다). 이것은 추론의 투명성을 높이는 동시에, 사용자가 모델의 사고 과정을 관찰하고 그 위에 피드백을 덧붙일 수 있게 한다.

“Extended thinking gives Claude enhanced reasoning capabilities for complex tasks, while providing varying levels of transparency into its step-by-step thought process before it delivers its final answer.” — Anthropic Documentation

이 투명성이 왜 중요한가. DeepSeek의 10,000토큰 추론을 우리는 볼 수 없다. 블랙박스다. 그래서 “DeepSeek는 도대체 400초 동안 뭘 하고 있는 것일까”라는 질문을 추측으로 답할 수밖에 없다. Claude의 extended thinking 토큰은 (API에서 thinking 필드로) 접근 가능하다. 이론적으로는 모델이 “이 타일을 여기에 놓고, 아 잠깐, 그럼 저 세트가 깨지니까…”라고 실제로 어떻게 생각했는지 읽을 수 있다.

물론 RummiArena의 AI Adapter는 현재 thinking 필드를 적극 활용하지는 않는다. 우리는 최종 응답만 파싱한다. 그러나 언젠가 AI 대전 대시보드에 “Claude가 이 턴에 실제로 무엇을 생각했는가”를 표시하는 기능을 추가한다면, extended thinking의 가치는 기술적 호기심을 넘어 UX의 일부가 될 것이다.


2. Claude 4 시대의 두 가지 사고 모드

Claude Sonnet 4는 두 가지 사고 모드를 지원한다.

Standard Mode. 일반적인 즉각 응답. 추론 토큰 없이 text 토큰만 생성한다. 대부분의 대화형 요청에 사용된다.

Extended Thinking Mode. 복잡한 태스크에서 활성화. 먼저 thinking 단계에서 추론을 수행하고, 그 결과를 바탕으로 text를 생성한다. thinking 토큰은 별도로 과금되며, 일반적으로 text 토큰의 몇 배에서 수십 배 규모에 이를 수 있다.

RummiArena의 AI Adapter는 claude-sonnet-4를 호출할 때 thinking: { type: "enabled", budget_tokens: N } 파라미터를 지정한다. 여기서 N은 모델이 thinking 단계에서 소비할 수 있는 최대 토큰량이다. 이것이 바로 Claude의 사고 예산(thinking budget) 이다.

흥미로운 점은, Claude 4 시리즈의 thinking mode가 “adaptive”하게 동작한다는 것이다. budget이 예컨대 16,000 토큰으로 설정되어 있다고 해서 모든 요청이 16,000 토큰을 다 사용하는 것은 아니다. 모델은 문제의 복잡도를 스스로 판단하고, 필요한 만큼만 thinking 토큰을 생성한다. 단순한 질문에는 수백 토큰, 복잡한 수학 문제에는 수만 토큰. 이것은 DeepSeek R1의 “사고 시간 자율 확장(intrinsic development)”과 유사한 행동이지만, Claude는 상한이 명시적으로 설정되어 있다는 점에서 다르다.

그리고 바로 이 adaptive 특성이 루미큐브 대전에서 Claude가 보인 독특한 패턴의 원인이다. 게임 초반에는 보드가 비어 있고 결정이 단순하다. Claude는 이 시점에서 thinking을 짧게 수행한다. 그러나 게임이 진행되면서 보드 위의 세트가 복잡해지고 손패의 조합 가능성이 폭발하면, Claude는 thinking budget을 더 깊이 소비한다. 그리고 “이 턴에 배치하는 것보다 한 턴 더 기다리는 것이 낫다” 는 메타 판단도 내린다. 이것이 28턴의 침묵을 만든다.


3. Thinking Budget — 사고의 경제학

Anthropic의 공식 문서는 extended thinking의 가격 구조를 이렇게 설명한다.

“Extended thinking tokens count as output tokens and are billed at the output rate.”

즉, thinking 토큰은 일반 output 토큰과 동일한 단가로 과금된다. Claude Sonnet 4의 output 단가가 $15/M이므로, thinking 1만 토큰이면 $0.15이다. 만약 한 턴에 thinking 1만 + output 2천 토큰이 발생하면, 단가만 해도 $0.18다. 여기에 input 토큰(프롬프트) 비용이 추가된다.

DeepSeek R1의 출력 단가 $2.19/M과 비교하면, 같은 양의 “생각”에 대해 Claude는 약 7배 비싸다. 이것이 Claude가 “가장 비싼 모델”인 이유의 기술적 근거다. DeepSeek는 추론 토큰에 거의 원가만 받는 정책이지만, Claude는 추론이 프리미엄 기능으로 위치해 있다.

비용 관점에서 이것을 어떻게 봐야 할까. 우리의 검증 대전 데이터를 다시 보자.

모델게임 비용평균 output 토큰/턴턴당 비용
DeepSeek$0.03910,010$0.001
GPT-5-mini$0.9754,296$0.024
Claude Sonnet 4$2.8865,550$0.074

Claude의 턴당 $0.074. DeepSeek의 74배, GPT의 3배. 그런데 여기서 기이한 점은, Claude의 평균 output 토큰(5,550)이 DeepSeek(10,010)의 절반에 불과하다는 것이다. 더 적게 생각하는데 더 많이 청구된다.

이것은 단가 차이의 직접적 결과다. 5,550 토큰 × $15/M = $0.083. 여기에 input 비용이 약 $0.02 정도 더해진다고 보면 턴당 $0.074라는 실측치와 맞아떨어진다. 반면 DeepSeek는 10,010 토큰 × $2.19/M = $0.022. 단가 차이가 토큰 수 차이를 압도한다.

이 구조에서 중요한 실천적 함의가 나온다. Claude로 실험을 설계할 때는 “사고 예산”을 단순 토큰이 아닌 돈으로 생각해야 한다. budget_tokens=32000으로 설정하는 것과 budget_tokens=8000으로 설정하는 것은 극단적인 경우 턴당 비용의 4배 차이를 만든다. 대전 한 판이 40턴이면 게임 비용의 4배 차이. 100게임이면 400배. 이것은 “성능 향상 vs 비용 폭증”의 현실적 딜레마를 낳는다.

RummiArena에서 Claude에 할당한 budget_tokens는 16,000이다. 이것은 Claude가 충분히 사고할 여지를 주면서도 극단적 비용 폭주를 막는 중간값이다. 이 설정에서 Claude는 T30의 10장 폭발 같은 극적 결과를 내기도 하고, T2~T28의 침묵 같은 “경제적” 턴을 만들기도 한다. budget의 존재가 Claude의 행동 범위 자체를 정의한다.


4. RummiArena에서의 Claude — 네 번의 대전

Claude Sonnet 4가 RummiArena에서 치른 대전을 시간 순으로 정리하면 이렇다.

라운드날짜Place Rate결과비고
Round 22026-03-3123.0%TIMEOUTv1 프롬프트, 9 place / 29 tiles / 80턴
Round 42026-04-0620.0%WS_TIMEOUT3 place / 10 tiles / 32턴 조기 종료, $1.11
Multirun Run 12026-04-1128.2%TIMEOUT11 place / 32 tiles / 80턴, $2.886
Multirun Run 22026-04-1119.0%WS_TIMEOUT4 place / 15 tiles / 44턴 조기 종료, $1.554
Multirun Run 32026-04-1133.3%TIMEOUT13 place / 30 tiles / 80턴, $2.886 (역대 최고)
검증 대전2026-04-1125.6%TIMEOUT10 place / 33 tiles / 80턴, $2.886, BUG-GS-005 수정 후

6번의 대전에서 Claude는 Place Rate 19.0%부터 33.3%까지 크게 흔들렸다. 표준편차 7.3%는 세 모델 중 가장 높다. 이것은 Claude가 “가장 분산이 큰 모델”임을 의미한다. DeepSeek(5.2%)와 GPT(6.1%)보다도 높다.

그런데 왜 Claude의 분산이 이렇게 큰가? 두 가지 요인이 복합적으로 작용한다.

첫째, WS_TIMEOUT의 구조적 취약성. 6번의 대전 중 2번(33%)이 WS_TIMEOUT으로 조기 종료됐다. DeepSeek과 GPT는 모두 WS_TIMEOUT 0건이다. 이것은 모델 자체의 문제가 아니라 응답 생성 시간이 불규칙하게 길어질 때 WebSocket keepalive 간격을 넘기면서 발생하는 인프라 이슈다. 그러나 그 원인이 “Claude의 extended thinking이 가끔 예상보다 오래 걸린다”는 점에 있다면, 이것은 결국 모델 특성이기도 하다. 자세한 것은 8장에서 다룬다.

둘째, “축적형 전략”의 본질적 분산. Claude는 관찰 → 축적 → 폭발의 패턴을 보이는데, 이 패턴이 제대로 작동하면 큰 점수가 나오고(Run 3 33.3%), 타이밍이 어긋나면 낮은 점수가 나온다(Run 2의 조기 종료 19.0%, Round 4 20.0%). “때가 되기 전에 게임이 끝나버리는” 리스크가 구조적으로 내재한다. 80턴 게임에서 Claude가 T30에 첫 Place를 시도한다면, 그것은 80턴 게임이라 가능한 전략이다. 40턴 게임이었다면 Claude는 첫 Place도 못 하고 패배했을지 모른다.

4.1 Multirun 3회 상세 비교

지표Run 1Run 2Run 3
Place Rate28.2%19.0%33.3%
Place / Draw / Fallback11 / 28 / 04 / 17 / 013 / 26 / 0
Tiles Placed321530
Turns8044 (WS_TIMEOUT)80
소요3,056s (51m)1,764s (29m)3,086s (51m)
비용$2.886$1.554$2.886
Avg / Max Latency78s / 203s71s / 157s79s / 178s
Fallback000

주목할 점이 두 가지다.

첫째, Run 3에서 Claude 역사상 최고치 33.3%. 이는 동일 multirun에서 GPT의 최고치(Run 1, 33.3%)와 공동 1위다. Claude가 제대로 작동하면 그 누구도 이기지 못한다.

둘째, Fallback 0건 × 3회. 이것은 세 모델 중 Claude만 달성한 기록이다. DeepSeek는 Run 1에서 Fallback 9건을 냈고, GPT는 Run 3에서 4건을 냈다. Claude는 어떤 Run에서도 Fallback 없이 AI Adapter의 요청을 모두 정상 처리했다. “응답을 내면 반드시 유효하다” 는 측면에서 Claude는 가장 신뢰할 수 있는 모델이다. 다만 응답을 못 내고 WS가 끊기는 경우는 있다.

4.2 응답 시간 프로파일

구간Claude Place Rate평균 Latency
초반 (T1~T26)0%61초
중반 (T27~T54)31%89초
후반 (T55~T80)43%111초

이 표가 Claude의 본질을 가장 잘 드러낸다.

초반 0%. Claude는 초반 26턴 동안 단 한 장도 타일을 내려놓지 않았다. 그러나 평균 61초의 사고는 하고 있었다. 이것은 “모르겠다”가 아니라 “아직 때가 아니다” 라는 판단의 누적이다.

중반 31%. 이 시점부터 Claude는 “충분히 관찰했으니 이제 실행할 때”라고 판단한다. Place Rate가 GPT(23%)를 이미 넘어선다.

후반 43%. 세 모델 중 후반 최고 성적. DeepSeek 36%, GPT 29%를 모두 앞선다. 후반으로 갈수록 Claude의 전략이 빛을 발한다. 축적된 관찰이 모두 결실로 전환되는 구간이다.

이 패턴은 마라톤 러너의 네거티브 스플릿(negative split) 을 닮았다. 전반보다 후반을 더 빨리 달리는 전략. 체력 안배와 페이스 조절의 산물이다. Claude는 루미큐브를 네거티브 스플릿으로 뛰고 있다.


5. T30의 폭발 — 해부

이제 이 글의 제목이 된 장면을 자세히 들여다보자.

검증 대전의 T30 AI 턴. 로그는 이렇게 기록한다.

1
T30 AI(seat 1): thinking... PLACE (10 tiles, cumul=10) [37.5s]

37.5초10장을 배치했다. 이 숫자의 무게를 이해하기 위해 몇 가지 비교를 해보자.

먼저 다른 모델의 최대 배치. DeepSeek의 최대 한 번 배치는 T76의 4장(434초 소요), GPT의 최대는 T2의 3장(20초 소요). Claude의 T30은 이 둘을 크게 넘어선다. 수량에서도, 그리고 수량 대비 시간 효율에서도. 10장을 37.5초에 내려놓았다는 것은 초당 0.27장, 혹은 장당 3.75초다. 이것은 놀라운 밀도다.

37.5초 동안 무슨 일이 벌어졌는가. Claude의 extended thinking은 이 턴에 대략 12,000~13,000 토큰의 thinking을 소비했을 것으로 추정된다(output 토큰 추이로부터 역산). 초당 약 340 토큰의 생성 속도. 이 토큰들 안에서 Claude는 다음과 같은 일을 수행했다고 봐야 한다.

  1. 현재 손패의 모든 유효 조합 탐색. 14장의 손패에서 가능한 모든 그룹과 런 조합을 나열한다. 예를 들어 R7a, R8a, R9a가 있다면 “빨강 런 3장”이 한 조합. B5a, Y5a, K5a가 있다면 “5의 그룹 3장”이 또 하나. 이런 조합을 전수 탐색한다.
  2. 조합들의 최대 집합 선택. 여러 조합 중 서로 겹치지 않으면서 가장 많은 타일을 사용하는 부분집합을 찾는다. 이것은 집합 피복(set cover) 문제와 유사하며, 작은 규모에서도 지수 시간이 걸릴 수 있다.
  3. 초기 등록 점수 제약 검증. 루미큐브 규칙상, 처음 타일을 등록할 때는 그 타일들의 숫자 합이 30점 이상이어야 한다. Claude는 이 조건을 만족하는 조합만 후보로 남긴다. 10장의 배치에서 30점 제약을 만족시키기는 오히려 쉽다. (평균 숫자가 3 이상이면 된다.)
  4. 조커의 사용 계산. 조커가 손패에 있다면 어떻게 활용할지 결정한다.
  5. 테이블 상태 변화의 시뮬레이션. 10장을 배치하면 테이블이 어떻게 변할지 시뮬레이션한다. 이 시점에서 보드가 일관성을 유지하는지 확인한다.
  6. 최종 응답 JSON 생성. 위의 모든 계산을 종합하여 “어느 타일을 어느 세트에 배치할지”를 명시한 JSON 응답을 만든다.

37.5초 안에 이것을 모두 해냈다. 게다가 이 10장의 배치는 루미큐브 규칙상 유효했다 — 무효였다면 fallback으로 처리되었을 것이다. 유효한 10장 배치가 얼마나 어려운 일인지, 나는 지금도 감이 잘 잡히지 않는다.

여기서 중요한 관찰 하나. 이 10장의 배치는 T2부터 T28까지의 14번의 Draw에서 축적된 손패 상태의 결실이다. 초기 14장의 손패 + 14번의 Draw = 이론상 28장의 손패 (단, 이 중 Place에 쓰이지 않은 타일만 누적). T29에 Claude가 DRAW를 선택했는지 PLACE를 선택했는지 로그상 확인할 수 없으나, T30에 10장을 배치했다는 것은 T29 시점에서 손패가 최소 10장 이상이었음을 의미한다. 즉, 14턴의 침묵 동안 Claude는 꾸준히 손패를 늘리며 “충분히 큰 조합을 만들 재료”를 축적하고 있었다.

이것이 전략이었는지, 아니면 초반에 놓을 조합을 정말 찾지 못한 결과였는지는 확실히 단정하기 어렵다. 그러나 Claude의 다른 대전 데이터를 교차 검토해보면 이 패턴이 반복적임을 알 수 있다. Run 1에서도 초반 14턴 중 Place는 T10에서 단 한 번뿐이었다. Run 3에서도 초반 12턴이 조용했다. Claude는 초반에 침묵한다는 것이 일관된 패턴이다.


6. 28턴의 침묵은 전략이었는가

기술적으로 “전략”은 의도를 요구하는 단어다. Claude가 “지금 Place하지 않고 기다리자”고 의식적으로 판단했는가? 아니면 그냥 초반 손패로는 유효 조합을 찾지 못해서 Draw를 선택한 것이 결과적으로 “침묵”처럼 보인 것인가?

이 질문에 정확히 답하려면 Claude의 thinking 토큰을 읽어야 한다. 안타깝게도 RummiArena의 현재 AI Adapter는 thinking 내용을 로깅하지 않는다. 비용 문제, 로그 크기 문제, 그리고 프로파일링 레이어의 복잡성 때문이다. 그래서 우리는 간접적 증거로 추론할 수밖에 없다.

6.1 간접 증거 1: 초기 등록 30점 제약

루미큐브 규칙의 핵심 제약 중 하나는 “첫 번째 등록 시 30점 이상” 이다. 예를 들어 빨강 1-2-3 런(합 6점)만 만들 수 있다면, 이것은 첫 등록으로 사용할 수 없다. 첫 등록을 하려면 고숫자(10 이상)가 포함된 조합이 필요하다. Claude의 초기 14장 손패가 저숫자 위주였다면, 첫 등록을 할 수 없다. 그러면 Draw를 반복하며 고숫자 타일이 들어오기를 기다려야 한다.

이 시나리오가 T2~T28의 침묵을 설명할 수 있다. Claude는 매 턴 “지금 손패로 30점 이상을 만들 수 있는가”를 체크했고, 답이 “No”였기 때문에 Draw를 선택했을 것이다. T29나 T30 시점에서 Draw를 통해 고숫자 타일이 추가되면서 드디어 30점 제약을 만족시키는 조합이 가능해졌고, 이때 Claude는 “기왕 내려놓을 거면 최대한 많이”라는 판단으로 10장 배치를 감행한 것이다.

6.2 간접 증거 2: Place 타이밍의 재현성

Claude의 서로 다른 대전에서 초반 첫 Place 타이밍을 비교해보자.

대전첫 Place 턴첫 Place 타일 수
Round 2T123장
Round 4T63장
Multirun Run 1T103장
Multirun Run 2T144장
Multirun Run 3T125장
검증 대전T3010장

검증 대전을 제외한 나머지 대전에서 Claude는 T6~T14 사이에 첫 Place를 시도한다. 그 시점에 30점 제약을 만족시키는 조합이 (손패의 무작위성 때문에) 일찍 형성되는 경우가 대부분이다. 검증 대전은 예외적으로 오래 기다렸다. 이것이 손패의 운이 나빴기 때문인지, Claude가 일부러 더 큰 조합을 기다린 전략이었는지는 단정하기 어렵다.

그러나 결과를 보면 흥미로운 점이 있다. 가장 오래 기다린 대전에서 가장 큰 첫 배치(10장)가 나왔다. 이것은 우연이 아닐 가능성이 높다. Claude의 extended thinking이 “지금 3장 놓는 것보다 몇 턴 더 기다려서 8장 이상 놓는 게 낫다”는 메타 판단을 실제로 수행할 수 있다면, 이 패턴은 전략의 증거가 된다.

6.3 간접 증거 3: 비교 모델의 행동

DeepSeek와 GPT는 “가능하면 일찍 Place” 전략을 보인다. DeepSeek는 T2에서 3장, GPT도 T2에서 3장을 배치했다. 두 모델은 30점 제약을 만족시키는 첫 번째 조합이 발견되면 즉시 실행한다. “기다렸다가 더 큰 배치”라는 개념이 없거나 약하다.

Claude만 다르다. Claude만 “기다리는 것”을 고려한다. 이것은 Anthropic의 RLHF 훈련이 “신중함”과 “장기적 계획”에 더 높은 보상을 주었기 때문일 가능성이 있다. Claude 모델 카드와 시스템 카드에서 반복적으로 등장하는 “harmlessness, helpfulness, honesty”의 HHH 원칙은, 직관적으로는 안전성과 관련된 것이지만, 간접적으로 “충동적이지 않은 결정”을 선호하는 편향을 만들 수 있다.

이것은 추측이지만 증거의 구조적 합치가 있다. 만약 Claude의 extended thinking이 정말로 “메타 전략적 판단”을 할 수 있다면, 28턴의 침묵은 단순한 불운이 아니라 선택이다. 그리고 10장의 폭발은 그 선택의 정당화다.


7. 평균 3.3장 — Claude의 배치 밀도

숫자 하나로 돌아가 보자. Claude의 검증 대전에서 Place 10회, 배치 타일 33장. 평균 3.3장/Place이다.

모델Place 횟수배치 타일평균 타일/Place
DeepSeek13282.2장
GPT-5-mini11292.6장
Claude Sonnet 410333.3장

Claude는 Place를 가장 적게 하지만, 배치 타일은 가장 많다. 이것은 “Place 빈도는 낮지만 Place할 때 더 많이”라는 전략 특성의 수치적 확인이다. 같은 메커니즘이 extended thinking에서 나온다. 한 번의 Place에 더 많은 사고를 투자하고, 그 결과로 더 많은 타일을 한꺼번에 내려놓는다.

이것이 게임 승리에 유리한가? 답은 루미큐브의 규칙 구조에 따라 다르다. 루미큐브의 승리 조건은 “손패를 모두 비우는 것”이다. Place 횟수는 중요하지 않다. 배치 타일 수가 직접적으로 승리에 기여한다. 이 관점에서 Claude의 33장은 DeepSeek의 28장보다 명백히 우월하다.

그러나 Place Rate라는 지표는 Place 횟수를 기준으로 계산된다 (Place 턴 수 / 전체 AI 턴 수). 이 지표는 “행동의 활발함”을 측정하지만 “행동의 효과”를 측정하지는 않는다. 만약 우리가 Place Rate 대신 “턴당 배치 타일 수” 를 지표로 삼았다면 Claude는 어떻게 평가되었을까?

모델총 턴배치 타일타일/턴
DeepSeek40280.70
GPT-5-mini40290.73
Claude Sonnet 439330.85

Claude가 1위다. 턴당 0.85장. Place Rate에서는 꼴찌였던 모델이, 배치 밀도에서는 선두다. 이것은 지표가 현실을 어떻게 왜곡하는지에 대한 작은 교훈이기도 하다. Place Rate만 보고 “Claude가 가장 약하다”고 결론내리면 현실을 놓친다.

Sprint 6에서 고려해봐야 할 지표 재설계 방향이 여기서 나온다. “Place Rate”만 추적하지 말고 “Tile Placement Rate (TPR)” 혹은 “타일 소비 속도”를 함께 추적해야 한다. Claude의 진가는 후자에서 드러난다.


8. WS_TIMEOUT 50% — Claude만의 취약점

Claude 6회 대전 중 2회(33%)가 WS_TIMEOUT으로 조기 종료되었다. Multirun 범위(4회)로만 보면 50% 다. DeepSeek와 GPT는 모두 WS_TIMEOUT 0건이다. 왜 Claude만?

먼저 WS_TIMEOUT이 무엇인지 정리하자. RummiArena 아키텍처에서 game-server와 AI Adapter 사이의 통신은 REST API지만, game-server와 프론트엔드 사이는 WebSocket이다. 게임이 진행되는 동안 WebSocket은 계속 열려 있어야 하며, 일정 시간(기본 60초) 동안 메시지가 오가지 않으면 keepalive ping으로 연결을 유지한다. 그러나 gateway 레이어(Traefik 등)의 idle timeout이 앞에서 연결을 끊어버리면 WS 세션이 강제 종료된다.

이것이 왜 Claude에게만 문제가 되는가? 추정되는 원인은 두 가지다.

8.1 원인 1: thinking 단계와 text 단계의 분리

Claude의 API는 thinking을 먼저 수행한 뒤 text를 생성한다. 이 두 단계 사이에 stream 이벤트가 비는 구간이 발생할 수 있다. thinking 토큰이 빠르게 생성되다가 text로 넘어가는 순간, API 응답 stream이 잠시 정체하는 경우가 있다. 이 정체가 gateway idle timeout(기본 60초 또는 설정에 따라)에 걸리면 WebSocket이 끊어진다.

DeepSeek나 GPT는 “한 번에 하나의 단계”로 응답을 생성하기 때문에 이런 정체가 발생하지 않는다. 토큰이 꾸준히 흘러나오거나, 아예 처음부터 긴 침묵 후 한꺼번에 응답한다(DeepSeek의 경우). 중간에 패턴이 바뀌는 Claude만 이 취약점을 가진다.

8.2 원인 2: Claude Sonnet 4의 thinking 토큰 폭발

Claude Sonnet 4의 extended thinking은 복잡도에 따라 사고를 늘린다. 우리의 데이터에서 Claude의 최대 output 토큰은 13,210이었다. 이것은 평균(5,550)의 2.4배다. 이런 “폭발 턴”에서 응답 생성 시간이 200초를 넘으면, WebSocket keepalive 주기를 초과할 수 있다.

실제로 Run 2의 WS_TIMEOUT은 T44에서 발생했다. 이 시점의 정확한 latency 로그를 확보하지는 못했지만, 직전 턴들에서 평균 latency가 증가하는 추세였던 것으로 추정된다. “축적된 사고의 폭발”이라는 Claude의 특성이, WebSocket 레이어의 관점에서는 “예측 불가능한 장시간 침묵”으로 보인 것이다.

8.3 대응책

BUG-GS-005 수정(2026-04-11)은 이 문제를 부분적으로 해결했다. WS가 끊겼을 때 게임 상태가 자동으로 정리되도록 했으므로, 적어도 좀비 게임이 누적되지는 않게 되었다. 그러나 WS가 끊기는 것 자체는 여전히 가능하다. 근본적 대응은 WebSocket keepalive 간격을 조정하거나, Claude 전용으로 heartbeat 주기를 짧게 설정하는 것이다. 이것은 Sprint 6의 과제로 남아 있다.

흥미로운 것은, Claude WS_TIMEOUT이 실제로 모델 성능에 미치는 영향이다. Run 2는 44턴에서 조기 종료되면서 Place Rate 19.0%로 기록되었다. 그러나 Run 2의 44턴까지만 놓고 보면, Claude는 Place 4회 / 15 tiles를 달성했다. 완주했다면 어땠을까? 단순 비례로 추정하면 80턴 기준으로 27.2%. Run 1의 28.2%와 거의 동일하다. 즉, WS_TIMEOUT이 Claude의 성능을 인위적으로 낮추고 있다는 해석이 가능하다.

이 해석이 옳다면, Claude의 실제 Place Rate는 multirun 평균 26.8%가 아니라 30%에 가까울 수 있다. WS_TIMEOUT을 “모델 성능” 지표에서 배제하고 인프라 이슈로 분류하면, Claude의 평가는 크게 개선된다. 이것은 Sprint 6의 멀티런 실험에서 확인해야 할 가설이다.


9. 비용의 정당화 — $2.886는 과연 비싼가

한 판에 $2.886. 이것을 DeepSeek의 $0.039와 나란히 놓으면 74배다. 숫자만 보면 과도하다는 인상을 지우기 어렵다. Sprint 6의 대량 실험 관점에서, Claude 100게임이면 $289. 이는 현재 Claude API 잔액($14.81)의 거의 20배에 해당한다. 현실적으로 Claude로는 대량 실험을 할 수 없다.

그러나 “비싸다”는 판단은 무엇을 얻기 위한 비용인가에 따라 달라진다.

9.1 생각 1: Place Rate만 본다면

DeepSeek 33.3% vs Claude 25.6%. DeepSeek가 7.7%p 앞선다. 비용은 DeepSeek가 74배 싸다. 이 기준으로만 보면 DeepSeek가 압승이다. Claude를 쓸 이유가 없다.

9.2 생각 2: Peak 성능을 본다면

Claude의 최고 대전 성적은 33.3%다. 이것은 DeepSeek의 최고(30.8%)를 능가한다. 즉, “가장 좋을 때의 Claude”는 가장 좋을 때의 DeepSeek보다 낫다. 분산이 크다는 것은 약점이기도 하지만, 상향의 여지가 크다는 뜻이기도 하다. 전시용 데모나 결정적 대전이 필요한 상황에서 Claude의 상한선은 유일하다.

9.3 생각 3: 배치 밀도를 본다면

7장에서 본 것처럼 Claude는 턴당 0.85장으로 1위다. 루미큐브의 실제 승리 조건(타일 소비)에 가장 효율적이다. 만약 DeepSeek vs Claude 직접 대전을 시뮬레이션한다면, 실제 게임에서는 Claude가 이길 가능성이 있다. 이것은 Sprint 6에서 확인해야 할 흥미로운 실험이다.

9.4 생각 4: 특이 사례 연구를 본다면

Claude의 T30 10장 폭발 같은 장면은 다른 모델에서 재현 불가능하다. 이것은 단순한 성능 지표를 넘어선 “사례”로서의 가치를 가진다. AI 연구 논문이나 발표에서 “우리는 LLM이 이런 행동도 할 수 있다는 것을 관찰했다”라고 말할 때, Claude의 침묵-폭발 패턴은 하나의 증거로 제시될 수 있다. 사례의 가치를 금전적으로 환산하기는 어렵지만, 한 번의 극적 장면을 얻기 위해 $3를 쓴다면 — 나쁜 거래는 아니다.

9.5 실용적 결론

Sprint 6의 전략은 이렇게 될 가능성이 높다.

  • 대량 실험: DeepSeek (100게임 $3.9)
  • 일상 실험: GPT-5-mini ($0.975/게임)
  • 피크 성능 데모: Claude ($2.886/게임, 연간 수회)
  • 사례 수집: Claude (특이한 전략 패턴이 발견될 확률이 높음)

Claude를 “빈번히 쓰는 기본 엔진”으로 쓰는 것은 비합리적이다. 그러나 “가끔 꺼내 쓰는 프리미엄 카드”로서의 자리는 확고하다. $2.886는 그 카드의 가격이다.


10. Adaptive Mode — 복잡도에 따라 사고를 늘리는 법

Anthropic이 Claude 4 시리즈에 도입한 “adaptive thinking”의 메커니즘을 조금 더 파고들어 보자.

기본 아이디어는 단순하다. 모든 요청에 동일한 양의 thinking을 사용하는 것은 비효율적이다. “1+1은?”에 thinking 5000 토큰을 쓰는 것은 낭비다. “이 수학 증명의 오류를 찾아라”에 thinking 500 토큰을 쓰는 것은 부족하다. 복잡도에 비례해서 thinking을 조정해야 한다.

Claude 4는 이것을 학습했다. 훈련 데이터에서 모델은 “쉬운 문제에는 짧게, 어려운 문제에는 길게” 생각하는 것에 보상을 받았다. 그리고 budget_tokens의 상한 안에서 스스로 적절한 길이를 선택할 수 있다.

이것이 루미큐브에서 어떻게 드러나는가. 구간별 레이턴시를 다시 보자.

구간Claude 평균 Latency
초반 (T1~T26)61초
중반 (T27~T54)89초
후반 (T55~T80)111초

초반 61초에서 후반 111초로, 82% 증가한다. 이 증가는 DeepSeek(191초 → 260초, +36%)보다도 가파르다. Claude의 adaptive mode가 복잡도 증가에 더 민감하게 반응한다는 뜻이다.

왜 이렇게 민감한가? 루미큐브의 후반은 보드 위에 10~15개의 세트가 깔려 있는 상태다. 새 타일을 내려놓으려면 (1) 새 세트를 만들거나 (2) 기존 세트를 재배치하는 두 가지 선택지가 있다. 후자가 훨씬 복잡하다. 기존 세트를 해체하고 재조합하면서 모든 세트가 여전히 유효한지를 검증해야 한다. 이것은 탐색 공간이 기하급수적으로 커지는 작업이다.

DeepSeek와 GPT는 후반에도 “주로 새 세트 만들기”에 집중한다. 재배치는 거의 시도하지 않는다. 그래서 레이턴시 증가가 비교적 완만하다. Claude는 후반에 재배치를 적극적으로 탐색한다. T30의 10장 폭발도 사실은 일부 재배치가 섞여 있을 가능성이 높다 (10장을 완전히 새 세트 3개로만 배치하는 것은 매우 어려운 조건이기 때문). 이 탐색이 레이턴시를 증폭시킨다.

그리고 후반 Place Rate 43% 라는 결과가 이 적극성의 보상이다. Claude가 후반에 더 오래 생각하면서 더 높은 성공률을 달성한다. 이것은 “adaptive thinking이 실제로 작동한다”는 직접적 증거다. 그리고 이것이 Claude를 다른 두 모델과 차별화하는 본질적 특징이다.


11. BUG-GS-005 수정 후의 Claude

BUG-GS-005는 “WebSocket 연결이 끊겼을 때 AI 게임이 자동으로 정리되지 않는 버그”였다. 2026-04-11에 수정되었다. 이 수정이 Claude에 미친 영향은 양가적이다.

11.1 긍정적 효과

수정 이후 검증 대전에서 Claude는 80턴을 완주했다. Multirun에서 50% 빈도로 발생했던 WS_TIMEOUT이 검증 대전에서는 발생하지 않았다. 이것은 BUG-GS-005의 직접적 수혜라기보다는, 좀비 게임이 정리되어 인프라가 “깨끗해진” 간접 효과로 보인다. 좀비가 없으면 WebSocket 레이어의 부하가 줄고, idle timeout에 걸릴 확률이 낮아진다.

11.2 중립적 효과

검증 대전의 Place Rate는 25.6%였다. Multirun 평균 26.8%와 거의 동일하다. “BUG-GS-005 수정으로 Claude의 숨겨진 성능이 드러났다”는 낙관적 시나리오는 현실화되지 않았다. Claude는 환경이 깨끗해지든 지저분하든 비슷한 성과를 낸다. 이것은 Claude의 extended thinking이 환경 노이즈에 대해 비교적 견고함을 의미한다.

11.3 부정적 효과

검증 대전에서 Claude는 33장의 타일을 배치했다. multirun 평균(약 26장)보다 오히려 많다. 그러나 Place 횟수는 10회(multirun 평균 7.3회)로 역시 증가했다. 배치 타일 수가 늘었는데 Place Rate가 비슷한 것은, 더 많은 Place가 일어났기 때문에 “분모”가 커졌다는 뜻이다. 33/(10×3.3) = 1.0의 타일 효율은 오히려 다소 낮다.

11.4 종합 해석

BUG-GS-005 수정이 Claude에 극적 개선을 가져오지는 않았다. 그러나 WS_TIMEOUT 리스크를 줄였다는 점에서 실용적 가치는 분명하다. Claude가 “완주할 수 있는 모델”이 되었다는 것 자체가 Sprint 6의 대량 실험을 가능하게 만든다. 만약 Claude가 여전히 50% 빈도로 조기 종료된다면, 어떤 실험도 결론을 내리기 어려웠을 것이다.


12. Claude 경쟁 모델과의 비교 — DeepSeek, GPT와 어떻게 다른가

이 글의 마무리로, 세 모델의 “사고의 질감”을 한 번 더 비교해 보자.

12.1 속도 vs 깊이의 스펙트럼

모델대표 특성비유
DeepSeek Reasoner느리지만 꾸준한 등반산악인, 천천히 정상까지
GPT-5-mini빠른 효율적 스프린트스프린터, 100m를 10초 만에
Claude Sonnet 4기다렸다가 터지는 폭발사냥꾼, 한 발에 결정

이 셋은 “추론 모델”이라는 같은 카테고리에 속하지만, 실제 행동 패턴은 질적으로 다르다. 셋 모두 chain-of-thought를 내부화하고, 복잡한 문제에서 더 많이 생각하지만, 그 “생각”의 구조가 다르다.

DeepSeek의 사고는 시간에 따라 선형적이다. 토큰 수와 레이턴시가 거의 비례한다. 10,000 토큰이면 240초, 15,000 토큰이면 350초. 계산 가능한 패턴이다.

GPT의 사고는 예산이 고정된 최적화다. reasoning_effort가 정한 상한 내에서 가장 효율적으로 탐색한다. 상한을 잘 넘지 않고, 상한에 닿으면 타협한다.

Claude의 사고는 비선형적이고 맥락 의존적이다. 짧게 끝나는 턴과 길게 가는 턴이 극적으로 갈린다. T30의 37.5초와 T2~T28의 평균 61초가 동일한 모델에서 나왔다. 이것은 Claude의 adaptive thinking이 정말로 “문제마다 다르게 생각한다”는 증거다.

12.2 세 모델이 같은 대전에 붙었다면?

Sprint 6의 흥미로운 실험 과제 중 하나가 “DeepSeek vs Claude vs GPT 3인 동시 대전” 이다. 현재까지의 데이터는 모두 “AI vs Random Human” 형식이다. 상대가 없는 퍼즐 모드에 가깝다. 그러나 진짜 루미큐브는 상호작용의 게임이다. 한 플레이어가 놓은 세트를 다른 플레이어가 재배치하고, 그 재배치가 또 다른 가능성을 여는 — 이런 동학이 루미큐브의 본질이다.

3인 대전에서 Claude의 “축적형 전략”은 매우 불리할 수 있다. 28턴 동안 침묵하는 동안, GPT와 DeepSeek는 이미 여러 번 Place를 해서 손패를 줄여놓았을 것이다. Claude가 T30에 10장 폭발을 시도하려 해도, 그때쯤이면 GPT나 DeepSeek가 이미 승리에 가까운 상태일 수 있다.

그러나 역설적으로, Claude의 배치 밀도 0.85장/턴이 여전히 경쟁력 있을 수 있다. 40턴 이내에 손패를 비우는 것이 승리 조건이라면, Claude는 평균 40 × 0.85 = 34장을 배치한다. 초기 손패 14장을 감안하면 20장 정도가 추가로 필요하니, Draw를 몇 번만 하고 나머지를 Place해도 충분하다. 수학적으로는 가능하다. 문제는 “타이밍” 이다.

이 질문은 Sprint 6에서 실제 데이터로 답해야 한다. 그때까지는 가설로 남는다.

12.3 세 모델의 철학적 차이

끝으로 한 가지 더. 세 모델은 AI 연구의 세 가지 다른 철학을 대표한다.

  • DeepSeek: 오픈 웨이트 + RL = “누구나 추론 모델을 만들 수 있다”
  • GPT: 클로즈드 + 튜너블 effort = “개발자가 추론 비용을 제어한다”
  • Claude: 클로즈드 + 투명한 thinking = “모델이 스스로 판단하되, 그 과정을 보여준다”

이 세 철학 중 어느 것이 옳은가라는 질문은 의미가 없다. 각각이 다른 맥락에서 가치를 가진다. 오픈소스 생태계의 관점에서는 DeepSeek가 혁명적이다. 엔터프라이즈 운영의 관점에서는 GPT의 제어 가능성이 매력적이다. 연구와 디버깅의 관점에서는 Claude의 투명성이 유일하다.

RummiArena의 관점에서는, 우리가 세 모델을 모두 붙일 수 있다는 사실 자체가 가장 중요하다. 한 모델만으로는 “추론 모델의 본질”을 이해할 수 없다. 세 모델의 행동 패턴을 교차 검토하면서, 우리는 비로소 “LLM이 루미큐브를 어떻게 사고하는가”에 대한 입체적 관점을 얻는다.


나가며 — 기다림을 전략으로 삼는 모델

이 글을 쓰면서 나는 T30의 로그 라인을 여러 번 다시 읽었다.

1
T30 AI(seat 1): thinking... PLACE (10 tiles, cumul=10) [37.5s]

thinking.... 이 세 점이 Claude의 모든 것을 말해준다. 28턴 동안, 수백 번의 thinking 토큰 생성 끝에, Claude는 “아직 아니다”를 반복했다. 그리고 T30에 이르러 마침내 “지금이다”를 말했다. 37.5초의 thinking. 10장의 PLACE. 이 세 점 안에 응축된 사고의 밀도는, 숫자로 환산할 수 없다.

루미큐브는 단순한 조합 최적화 문제처럼 보이지만, 그 안에는 타이밍이라는 숨겨진 차원이 있다. “언제 실행할 것인가”는 “무엇을 실행할 것인가”만큼 중요한 질문이다. DeepSeek은 이 질문에 “가능해지면 즉시”라고 답한다. GPT는 “효율적일 때”라고 답한다. Claude만이 “최대가 될 때까지 기다려서”라고 답한다.

이 세 번째 답이 항상 옳은 것은 아니다. 28턴의 침묵 중 게임이 끝나버리면 Claude는 0장을 배치한 채 패배한다. Run 2의 WS_TIMEOUT이 그 시나리오의 축소판이다. 44턴에서 게임이 강제 종료되었을 때, Claude는 4 Place / 15 tiles만 달성했다. 만약 80턴이 주어졌다면 달랐을지도 모른다. 그러나 현실은 다른 “만약”이 아니라 실제 결과에 의해 평가된다.

그래서 Claude는 양날의 검이다. 잘 되면 최고, 못 되면 최저. 분산이 크다. 위험하다. 그러나 바로 그 위험 속에서 T30 같은 장면이 탄생한다. 루미큐브를 “확률 분포의 기댓값”으로 보는 사람이라면 Claude를 피할 것이다. 루미큐브를 “드라마의 무대”로 보는 사람이라면 Claude를 사랑할 것이다.

애벌레는 어느 쪽인가? 이 프로젝트를 6개월째 이끌어오면서 나는 두 쪽 모두가 되었다. 기댓값으로 봐야 할 때는 DeepSeek에게, 드라마가 필요할 때는 Claude에게 눈을 돌린다. 그리고 대부분의 일상적 대전은 GPT에게 맡긴다. 세 모델이 각자의 자리에 있어서, 이 프로젝트는 AI 실험 플랫폼으로 작동한다.

Claude Sonnet 4의 extended thinking은 “더 깊이 생각하는 기술”이 아니라 “언제 얼마나 깊이 생각할지를 스스로 정하는 기술” 이다. 그리고 루미큐브 테이블 위에서, 이 기술은 28턴의 침묵과 10장의 폭발로 구현되었다. 이 장면을 관찰할 수 있었다는 것만으로도, $2.886는 싼 값이었다고 생각한다.

다음 대전에서 Claude가 또 어떤 장면을 만들어 줄지, 나는 조용히 기대하고 있다. 드라마의 마지막 씬은 언제나 예상하지 못한 곳에서 온다.


Sources

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.