<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ai-Comparison on Yarang's Tech Lair</title><link>https://blog.fcoinfup.com/ko/tags/ai-comparison/</link><description>Recent content in Ai-Comparison on Yarang's Tech Lair</description><generator>Hugo -- gohugo.io</generator><language>ko</language><lastBuildDate>Fri, 08 May 2026 21:55:39 +0900</lastBuildDate><atom:link href="https://blog.fcoinfup.com/ko/tags/ai-comparison/index.xml" rel="self" type="application/rss+xml"/><item><title>4개의 AI에게 같은 코딩 태스크를 동시에 보내봤다</title><link>https://blog.fcoinfup.com/ko/post/4%EA%B0%9C%EC%9D%98-ai%EC%97%90%EA%B2%8C-%EA%B0%99%EC%9D%80-%EC%BD%94%EB%94%A9-%ED%83%9C%EC%8A%A4%ED%81%AC%EB%A5%BC-%EB%8F%99%EC%8B%9C%EC%97%90-%EB%B3%B4%EB%82%B4%EB%B4%A4%EB%8B%A4/</link><pubDate>Fri, 08 May 2026 21:55:39 +0900</pubDate><guid>https://blog.fcoinfup.com/ko/post/4%EA%B0%9C%EC%9D%98-ai%EC%97%90%EA%B2%8C-%EA%B0%99%EC%9D%80-%EC%BD%94%EB%94%A9-%ED%83%9C%EC%8A%A4%ED%81%AC%EB%A5%BC-%EB%8F%99%EC%8B%9C%EC%97%90-%EB%B3%B4%EB%82%B4%EB%B4%A4%EB%8B%A4/</guid><description>&lt;p&gt;같은 버그 수정 태스크를 Claude, ZAI(GLM), OpenAI Codex, Google Gemini에게 동시에 던지면 어떤 일이 벌어질까?&lt;/p&gt;
&lt;p&gt;이 질문에서 AgentForge 프로젝트가 시작됐다. 여러 LLM CLI를 NATS JetStream 메시지 큐로 묶어서 같은 태스크를 병렬로 처리하는 시스템을 만들었고, 그 과정에서 예상치 못한 발견들이 있었다. 이번 글은 &amp;ldquo;설정하면서 뭘 발견했나&amp;quot;에 집중한 비교 실험 기록이다.&lt;/p&gt;
&lt;p&gt;시스템의 설계·구현 이야기는 2편에서 다룬다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="테스트한-ai-목록"&gt;테스트한 AI 목록
&lt;/h2&gt;&lt;p&gt;최종적으로 운영 중인 워커 18개의 구성은 다음과 같다.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;계열&lt;/th&gt;
 &lt;th&gt;모델&lt;/th&gt;
 &lt;th&gt;비고&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;claude-sonnet-4-6&lt;/td&gt;
 &lt;td&gt;메인 개발 워커&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Code&lt;/td&gt;
 &lt;td&gt;claude-sonnet-4-5&lt;/td&gt;
 &lt;td&gt;이전 세대 비교용&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Code&lt;/td&gt;
 &lt;td&gt;claude-haiku-4-5&lt;/td&gt;
 &lt;td&gt;경량·고속&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Code&lt;/td&gt;
 &lt;td&gt;claude-opus-4-6&lt;/td&gt;
 &lt;td&gt;최고 사양&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Code&lt;/td&gt;
 &lt;td&gt;claude-opus-4-5&lt;/td&gt;
 &lt;td&gt;이전 세대 비교용&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;ZAI (GLM)&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;glm-5.1&lt;/td&gt;
 &lt;td&gt;고사양 티어&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ZAI (GLM)&lt;/td&gt;
 &lt;td&gt;glm-4.7&lt;/td&gt;
 &lt;td&gt;중간 티어&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ZAI (GLM)&lt;/td&gt;
 &lt;td&gt;glm-4.5-air&lt;/td&gt;
 &lt;td&gt;경량 티어&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;OpenAI Codex&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;gpt-5.5&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Codex&lt;/td&gt;
 &lt;td&gt;gpt-5.4&lt;/td&gt;
 &lt;td&gt;1M 컨텍스트&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Codex&lt;/td&gt;
 &lt;td&gt;gpt-5.4-mini&lt;/td&gt;
 &lt;td&gt;400K 컨텍스트&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Codex&lt;/td&gt;
 &lt;td&gt;gpt-5.3-codex&lt;/td&gt;
 &lt;td&gt;272K 컨텍스트&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Google Gemini&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;gemini-2.5-flash&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini&lt;/td&gt;
 &lt;td&gt;gemini-2.5-pro&lt;/td&gt;
 &lt;td&gt;고사양&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini&lt;/td&gt;
 &lt;td&gt;gemini-2.5-flash-lite&lt;/td&gt;
 &lt;td&gt;경량&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;처음 시작할 때 목록은 훨씬 짧았다. 어떤 모델을 쓸 수 있는지 직접 실험해보면서 늘어났다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="발견-1-claude-3x-시리즈는-이미-접근-불가"&gt;발견 1: Claude 3.x 시리즈는 이미 접근 불가
&lt;/h2&gt;&lt;p&gt;Claude Code를 오래 써온 사람이라면 Claude 3.7 Sonnet, 3.5 Sonnet, 3.5 Haiku를 떠올릴 수 있다. 그래서 이 모델들도 워커로 추가하려 했다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;claude --model claude-3-7-sonnet-20250219 --print &lt;span style="color:#e6db74"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# → &amp;#34;may not exist or no access&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;세 모델 모두 동일한 오류. Claude 3 시리즈는 2026년 초에 EOL을 맞이했고, Claude Code CLI를 통한 접근이 차단됐다. 현재 Claude Code 구독으로 쓸 수 있는 것은 4.x 계열뿐이다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;결론&lt;/strong&gt;: Claude 워커는 4.5/4.6 계열로만 구성했다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="발견-2-chatgpt-계정-codex는-모델-선택이-제한적이다"&gt;발견 2: ChatGPT 계정 Codex는 모델 선택이 제한적이다
&lt;/h2&gt;&lt;p&gt;OpenAI Codex CLI는 ChatGPT Plus/Pro 계정이나 별도 API 키로 인증한다. ChatGPT 계정 기반일 경우 접근 가능한 모델이 제한된다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;codex --model gpt-5.5-pro &lt;span style="color:#e6db74"&gt;&amp;#34;fix the bug&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# → &amp;#34;Model gpt-5.5-pro is not supported with ChatGPT account&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;codex --model gpt-5.5 &lt;span style="color:#e6db74"&gt;&amp;#34;fix the bug&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# → 정상 작동&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ChatGPT 계정으로 사용할 수 있는 모델:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;모델&lt;/th&gt;
 &lt;th&gt;컨텍스트&lt;/th&gt;
 &lt;th&gt;추론 수준&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;gpt-5.5&lt;/td&gt;
 &lt;td&gt;1M / 1M&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gpt-5.4&lt;/td&gt;
 &lt;td&gt;1M / 1M&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gpt-5.4-mini&lt;/td&gt;
 &lt;td&gt;400K / 400K&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gpt-5.3-codex&lt;/td&gt;
 &lt;td&gt;272K / 400K&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;gpt-5.5-pro&lt;/code&gt;를 포함한 다른 모델은 모두 &amp;ldquo;not supported with ChatGPT account&amp;rdquo; 오류를 반환한다. API 키 방식이라면 더 많은 모델을 쓸 수 있지만, 그건 다른 접근 방식이다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="발견-3-gemini-cli는-25-시리즈만-된다"&gt;발견 3: Gemini CLI는 2.5 시리즈만 된다
&lt;/h2&gt;&lt;p&gt;Gemini CLI(&lt;code&gt;gemini&lt;/code&gt; 바이너리)로 여러 모델을 테스트했다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gemini -p &lt;span style="color:#e6db74"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt; -m gemini-2.0-flash
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# → ModelNotFoundError: models/gemini-2.0-flash is not found&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gemini -p &lt;span style="color:#e6db74"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt; -m gemini-1.5-pro
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# → ModelNotFoundError&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gemini -p &lt;span style="color:#e6db74"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt; -m gemini-2.5-flash
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# → 정상 작동&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;현재 계정으로 접근 가능한 Gemini 모델:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;gemini-2.5-flash&lt;/code&gt; — 기본 추천 모델&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gemini-2.5-pro&lt;/code&gt; — 고사양&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gemini-2.5-flash-lite&lt;/code&gt; — 경량&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gemini 2.0 이하 버전은 ModelNotFoundError를 반환한다. 계정 플랜이나 API 키 종류에 따라 다를 수 있지만, Gemini CLI 기준으로는 2.5 시리즈만 안정적으로 동작했다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="발견-4-zai는-claude-sdk로-우회할-수-있다"&gt;발견 4: ZAI는 Claude SDK로 우회할 수 있다
&lt;/h2&gt;&lt;p&gt;ZAI는 Anthropic API와 호환되는 엔드포인트를 제공하는 서비스다. 덕분에 Claude Code CLI에서 환경변수 두 개만 바꿔서 GLM 모델을 쓸 수 있다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ANTHROPIC_BASE_URL&lt;span style="color:#f92672"&gt;=&lt;/span&gt;https://&amp;lt;ZAI endpoint&amp;gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ANTHROPIC_AUTH_TOKEN&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&amp;lt;ZAI_KEY&amp;gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;claude --model glm-5.1 --print &lt;span style="color:#e6db74"&gt;&amp;#34;fix the bug&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Claude Code가 내부적으로 Anthropic Python SDK를 쓰기 때문에, &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;만 오버라이드하면 동일한 포맷으로 ZAI의 GLM 모델을 호출한다. 별도의 어댑터 코드 없이 기존 &lt;code&gt;claude&lt;/code&gt; 백엔드를 그대로 재사용할 수 있다는 점이 흥미로웠다.&lt;/p&gt;
&lt;p&gt;사용한 GLM 모델 3종:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;glm-5.1&lt;/code&gt; — 고사양 티어&lt;/li&gt;
&lt;li&gt;&lt;code&gt;glm-4.7&lt;/code&gt; — 비용·성능 균형점&lt;/li&gt;
&lt;li&gt;&lt;code&gt;glm-4.5-air&lt;/code&gt; — 경량·고속&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="4-way-fan-out-비교-테스트"&gt;4-way Fan-out 비교 테스트
&lt;/h2&gt;&lt;p&gt;18개 워커 중 대표 4개(Claude Sonnet, GLM-5.1, Codex gpt-5.5, Gemini 2.5 Flash)에 동일한 Go 버그 수정 태스크를 동시에 발행했다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;태스크: &amp;#34;fix the off-by-one error in the binary search function&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;응답 시간 (wall clock):&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;워커&lt;/th&gt;
 &lt;th&gt;모델&lt;/th&gt;
 &lt;th&gt;응답 시간&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;cc-go-dev-01&lt;/td&gt;
 &lt;td&gt;claude-sonnet-4-6&lt;/td&gt;
 &lt;td&gt;~8초&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;cc-zai-high-dev-01&lt;/td&gt;
 &lt;td&gt;glm-5.1&lt;/td&gt;
 &lt;td&gt;~12초&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;codex-py-dev-01&lt;/td&gt;
 &lt;td&gt;gpt-5.5&lt;/td&gt;
 &lt;td&gt;~15초&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gemini-py-dev-01&lt;/td&gt;
 &lt;td&gt;gemini-2.5-flash&lt;/td&gt;
 &lt;td&gt;~10초&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;응답 시간보다 흥미로운 건 접근 방식의 차이다. Claude는 함수 전체를 리팩토링하는 경향이 있었고, Gemini는 최소한의 수정을 선호했다. Codex는 테스트 코드까지 함께 추가하는 경우가 많았다.&lt;/p&gt;
&lt;p&gt;물론 이건 단일 태스크 결과라 통계적 의미는 없다. 벤치마크가 아니라 &amp;ldquo;실제로 동작하는지 확인&amp;quot;하는 수준의 검증이었다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="분산-워커-두-번째-호스트-추가"&gt;분산 워커: 두 번째 호스트 추가
&lt;/h2&gt;&lt;p&gt;워커들이 모두 한 서버에 있으면 비교 실험의 의미가 약해진다. 그래서 두 번째 호스트에 Claude 워커를 추가했다.&lt;/p&gt;
&lt;p&gt;두 번째 호스트에서 NATS 브로커(첫 번째 호스트)에 접근하는 방법은 autossh 터널이다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;ExecStart&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;autossh -N -L 4222:127.0.0.1:4222 broker-host&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;로컬의 4222 포트를 브로커로 포워딩하면 워커 코드 변경 없이 어느 호스트에서나 &lt;code&gt;nats://127.0.0.1:4222&lt;/code&gt;로 접속할 수 있다.&lt;/p&gt;
&lt;p&gt;이 방식의 장점: 워커는 브로커가 어디 있는지 알 필요가 없다. 항상 &lt;code&gt;localhost:4222&lt;/code&gt;로 연결하면 된다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="운영하면서-가장-당황했던-순간"&gt;운영하면서 가장 당황했던 순간
&lt;/h2&gt;&lt;p&gt;가장 곤혹스러운 상황은 NATS operator signing key를 분실한 것이었다. NATS JetStream은 NKey 기반 인증을 쓰는데, 신규 워커의 credentials를 발급하려면 operator/account의 signing key(nsc seed)가 필요하다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nsc add user --account Services --name new-worker
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# → &amp;#34;signing key not found&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;백업이 없었다. 결국 NATS operator를 통째로 재생성하고, 모든 워커의 credentials를 새 권한 트리로 교체하는 대규모 컷오버를 진행했다. 서비스 다운타임은 약 60초였다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;교훈&lt;/strong&gt;: NATS operator seed는 생성 즉시 오프라인 백업을 만들어라. 분실하면 재생성 외에 방법이 없다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="정리"&gt;정리
&lt;/h2&gt;&lt;p&gt;이번 실험에서 얻은 실용적인 결론:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Claude 3.x는 EOL&lt;/strong&gt; - 2026년 기준 Claude Code CLI에서 접근 불가. 4.x만 쓸 것.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Codex ChatGPT 계정은 모델 4종만&lt;/strong&gt; - gpt-5.5, 5.4, 5.4-mini, 5.3-codex. Pro 모델은 별도 API 키 필요.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini는 2.5 시리즈만&lt;/strong&gt; - CLI 기준 이전 버전 접근 불가.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ZAI는 Claude SDK 환경변수 오버라이드로 통합 가능&lt;/strong&gt; - 별도 어댑터 불필요.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NATS NKey는 반드시 백업&lt;/strong&gt; - signing key 분실 = 전체 재발급.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;다음 편에서는 이 워커들이 어떻게 연결되는지, 시스템 설계와 구현을 다룬다.&lt;/p&gt;</description></item></channel></rss>