Gemma 4 로컬 실행: LM Studio Headless CLI와 Claude Code 연동 가이드

왜 로컬에서 LLM을 돌려야 할까?

클라우드 AI API는 편리하지만, 매번 따라오는 문제가 있어요. 요금 폭탄, 속도 제한, 개인정보 유출 우려, 그리고 네트워크 지연까지. 특히 코드 리뷰, 초안 작성, 프롬프트 테스트처럼 빠른 반복이 필요한 작업에서는 매 요청마다 클라우드를 거치는 게 병목이 돼요. Gemma 4 로컬 실행은 이런 문제를 근본적으로 해결하는 접근법이에요. Google이 공개한 Gemma 4는 mixture-of-experts(MoE) 구조를 채택해서 26B 파라미터 모델이면서도 추론 시 4B 파라미터만 활성화해요. 덕분에 M4 Pro MacBook(48GB) 같은 소비자용 하드웨어에서도 초당 51토큰이라는 실용적인 속도를 낼 수 있어요. 이 글에서는 LM Studio의 새로운 Headless CLI를 활용해 Gemma 4 로컬 실행 환경을 구축하고, Claude Code와 연동해 완전한 오프라인 코드 어시스턴트를 만드는 과정을 다뤄요.

Gemma 4 아키텍처: MoE가 개발자에게 의미하는 것

10B급 품질, 4B급 비용의 비밀

Gemma 4 26B-A4B 모델은 128개 전문가(expert) 중 8개만 활성화해서 실제 연산에 사용하는 파라미터는 3.8B에 불과해요. 벤치마크 성능은 MMLU Pro 82.6%, AIME 2026 88.3%로 31B dense 모델에 근접하면서도 훨씬 적은 연산 자원을 소모해요. Per-Layer Embeddings 구조를 사용하며, 도구 호출(tool use) 학습도 완료된 상태라 에이전트 워크플로우에 바로 투입할 수 있어요.

MoE의 메모리 특성 — 흔한 오해 바로잡기

한 가지 주의할 점이 있어요. MoE는 연산량(FLOPs)은 줄여주지만, 메모리(VRAM/RAM) 사용량은 dense 모델과 크게 다르지 않아요. 비활성 전문가들도 여전히 메모리에 로드되어 있어야 하거든요. 다만 tok/s(초당 토큰 생성 속도)는 확실히 개선돼요. NVIDIA GPU 사용자라면 비활성 전문가를 CPU RAM으로 오프로드하는 전략도 가능해요. 예를 들어 35B MoE 모델을 12GB VRAM GPU + 16GB RAM 조합으로 돌릴 수 있어요. 기본 모델이 약 17.6GiB를 차지하고, 컨텍스트 길이를 2배로 늘릴 때마다 3~4GiB가 추가로 필요해요. 48K 컨텍스트 기준 약 21GiB, 256K까지 확장하면 37.48GiB가 필요하니 자신의 시스템 메모리에서 OS 사용량(4~6GB)을 빼고 계획을 세워야 해요.

LM Studio Headless CLI로 서버 구축하기

LM Studio 0.4.0부터 도입된 Headless CLI(llmster)는 데스크톱 앱 없이 터미널만으로 모델 다운로드, 로드, 채팅, API 서버 실행을 전부 처리할 수 있어요. Gemma 4 로컬 실행을 위한 핵심 도구예요.

설치부터 서버 실행까지

# LM Studio CLI 설치
curl -fsSL https://lmstudio.ai/install.sh | sh

# 런타임 업데이트
lms runtime update llama.cpp
lms runtime update mlx

# Gemma 4 다운로드 및 로드
lms get google/gemma-4-26b-a4b
lms load google/gemma-4-26b-a4b

# 채팅 테스트 (성능 통계 포함)
lms chat google/gemma-4-26b-a4b --stats

로드 시 Q4_K_M 양자화(4비트)가 기본 적용되고, 최대 컨텍스트 길이는 262,144토큰까지 지원해요. 메모리 여유를 확인하려면 --estimate-only 플래그를 활용하세요.

# 메모리 사용량만 미리 확인
lms load google/gemma-4-26b-a4b --estimate-only --context-length 48000

# 컨텍스트 확장 로드
lms load google/gemma-4-26b-a4b --context-length 128000

성능 튜닝 포인트

API 서버는 http://localhost:1234/v1에서 OpenAI·Anthropic 호환 엔드포인트를 제공해요. 연속 배칭(continuous batching)으로 여러 요청을 동시에 처리하며, 48GB 시스템에서는 48K 컨텍스트 + 병렬 요청 2개가 적절한 설정이에요. TTL(Time To Live)은 기본 1시간이고, 요청 시 자동 로드·TTL 후 자동 언로드되니 리소스 관리도 자동화돼요. 추측 디코딩(Speculative Decoding)도 지원하지만, Mixtral 테스트 결과 코드 작업에서 39% 향상·수학 작업에서 54% 저하를 보여서 작업 유형에 따라 선택적으로 사용해야 해요. lms log stream --source model --stats로 실시간 GPU 사용률, 온도, 전력 소비를 모니터링할 수 있어요.

Claude Code 연동: 완전 오프라인 코드 어시스턴트

Gemma 4 로컬 실행 환경에 Claude Code를 연결하면, API 비용 없이 코드 리뷰와 소규모 수정 작업을 처리할 수 있어요. 설정은 환경변수 두 줄이면 끝이에요.

export ANTHROPIC_BASE_URL=http://localhost:1234
export ANTHROPIC_MODEL="gemma-4-26b-a4b"

이렇게 하면 Claude Code의 모든 모델 호출(Opus, Sonnet, Haiku)이 로컬 Gemma 4로 라우팅돼요. 네트워크 차단 상태에서도 완전한 오프라인 코드 어시스턴트로 동작해요. 다만 몇 가지 현실적인 한계를 알아둬야 해요.

  • Anthropic API를 완전히 대체하기는 어려워요. 복잡한 멀티스텝 추론이나 대규모 리팩토링은 클라우드 모델이 여전히 우세해요.
  • Claude Code 내에서의 응답 속도는 직접 채팅보다 다소 느려질 수 있어요.
  • 일부 사용자 보고에 따르면 특정 백엔드 조합에서 400 Bad Request 오류나 무한 루프가 발생하기도 해요. llama-server 기반이 상대적으로 안정적이에요.

실전에서 가장 효과적인 패턴은 하이브리드 구성이에요. 코드 리뷰·탐색·프롬프트 테스트 같은 빠른 반복 작업은 로컬 모델로, 복잡한 아키텍처 설계나 대규모 코드 생성은 클라우드 모델로 처리하는 거예요. 로컬 모델이 이제 단순히 "가능한 수준"을 넘어서 실제 개발 워크플로우에 통합할 수 있는 단계에 도달했어요.

생태계 흐름: 모델은 범용화, 경쟁은 하니스로

커뮤니티 반응에서 흥미로운 인사이트가 나왔어요. Gemma 4 로컬 실행이 가능해진 것 자체보다, Claude Code·OpenCode·Codex 같은 코딩 에이전트가 어떤 백엔드와도 작동하는 흐름이 더 중요하다는 거예요. 모델 자체가 범용화(commoditization)되면서 경쟁의 초점이 모델 품질에서 하니스(harness) — 즉 에이전트 프레임워크와 도구 통합 — 로 이동하고 있어요. 실제로 "Improving 15 LLMs at Coding in One Afternoon"이라는 글에서도 하니스만 교체해도 큰 성능 개선이 있었다고 보고했어요. Qwen 3.5 35B, GLM 4.7 Flash, Nemotron 3 Nano 같은 경쟁 모델도 같은 파이프라인에서 즉시 교체 가능하고, 각각의 벤치마크 강점에 따라 작업별로 라우팅하는 구성도 고려해 볼 만해요.

마무리

LM Studio Headless CLI와 Gemma 4의 조합은 개발자가 API 비용과 네트워크 의존성 없이 실용적인 AI 코딩 환경을 구축할 수 있게 해줘요. curl 한 줄로 시작해서 환경변수 두 줄로 Claude Code를 연결하면, 로컬 오프라인 코드 어시스턴트가 완성돼요. 앞으로 MoE 모델의 효율성이 더 높아지고 에이전트 하니스가 성숙해지면, 로컬 추론과 클라우드 추론의 하이브리드 워크플로우가 개발자의 기본 환경이 될 거예요.

이 블로그의 인기 게시물

TorchTPU: PyTorch를 TPU에서 네이티브로 실행하는 구글의 전략

가상 파일시스템으로 AI 어시스턴트 비용·속도 최적화하기

gemma4 vllm 실행 방법: 설치·최적화·멀티GPU 완전 가이드