누군가 오프라인 Claude Code 설정을 시도하고 있을 경우를 대비해, 실제 비행 중에 테스트한 워크플로우를 공유하고자 합니다.
핵심 아이디어: ollama를 사용하여 필요한 모델을 가져온(pull) 다음, 이를 사용하여 Claude Code를 실행하는 것입니다.
설정 순서:
- 전날 밤 집 와이파이에서 모델을 가져옵니다.
ollama pull <model> — 14B 모델은 약 9GB, 26B 모델은 약 17GB입니다. 게이트(탑승구)에서 시도하지 마세요.
- Claude Code에서 Ollama를 가리키도록 설정합니다. 제가 찾은 가장 깔끔한 방법은 두 개의 별칭(alias)으로 감싸는 것이었습니다:
alias claude-local='ollama launch claude --model gemma4:26b' alias claude-cloud='claude'
- 와이파이를 물리적으로 끈 상태에서 지상에서 확인합니다. 집에서 비행기 모드로 작동한다면, 하늘 위 10km 상공에서도 작동합니다.
제가 실수했던 부분: 저는 로컬-LLM(local-LLM) 스레드에서 모두가 추천하는 모델인 qwen2.5-coder:14b를 먼저 준비했습니다. 하지만 비행 중에 Claude Code의 도구 루프(tool loop)에서 막혔습니다. 한 번의 호출에 25초가 걸리고, 다른 호출에는 52초가 걸렸습니다. 작업당 5~6개의 도구 호출을 체인(chain)으로 연결하는 워크플로우에서 이는 사용 불가능한 수준입니다.
비행 중에 (백업으로 가져왔던) gemma4:26b로 전환했습니다. 이는 다른 범주의 모델로, 단순한 코드 완성(code completion)이 아니라 도구 사용(tool use)을 위해 강화학습(RL)된 모델입니다. 도구 루프가 사용 가능한 속도로 실행되었습니다. 실제 코드베이스에서 수행하던 차이 분석(gap analysis)을 완료할 수 있었습니다.
솔직한 점수표: 제 일반적인 Claude Code 워크플로우의 약 70%가 gemma4:26b 오프라인 환경에서 작동했습니다. 작동하지 않은 30%는 무거운 전체 리포지토리 추론(whole-repo reasoning) 작업이었습니다.
언제 무엇을 사용할 것인가:
claude-local: 네트워크가 없을 때, 개인정보 보호가 중요한 코드(NDA / 클라이언트 작업), 클라우드 토큰을 소비하기 전에 프롬프트 초안을 작성할 때
claude-cloud: 서브 에이전트(subagents) 및 MCP 서버를 사용하는 멀티 도구 에이전트 작업(multi-tool agentic work), 전체 리포지토리 리팩토링(whole-repo refactors), 프로덕션에 배포되는 모든 작업
문제가 발생했거나 놀라웠던 점:
-
도구 사용(Tool use)은 로컬 모델의 약점입니다. 성능이 좋은 모델이라도 클라우드 Claude에 비해 많은 도구 호출을 체이닝하는 신뢰도가 떨어집니다.
-
에디터와 브라우저를 열어둔 상태에서 26B 모델을 실행하면 배터리 소모가 눈에 띄게 빨라집니다.
-
Ollama의 엔드포인트 (endpoint) 형태가 Anthropic의 것과 100% 동일하지 않습니다. 스트리밍 (stream) 도중 이상한 파싱 에러 (parsing error)가 발생한다면 보통 이것이 원인이며, 현재로서는 claude-cloud를 사용하는 것이 해결책입니다.
만약 다른 분들 중에서도 Claude Code를 위해 구체적으로 로컬 모델 (local models)을 테스트해 보신 분이 있다면 (Cursor는 루프 (loops) 방식이 다르므로 제외), 어떤 모델을 선택하셨는지 궁금합니다.