본문 바로가기

AI Agent

월 구독료 0원으로 Claude Code급 에이전트 굴리기 — Qwen3.6-27B + Ollama + Aider 실전 구축

반응형

API 비용이나 구독료 걱정 없이 코딩 에이전트를 돌리고 싶다는 생각, 한 번쯤 해보셨을 겁니다. Claude Code나 Cursor 구독료가 매달 $20~200씩 빠져나가는 게 부담스럽거나, 사내 코드를 외부 API로 보내면 안 되는 환경에서 일한다면 더더욱 그렇습니다.

Qwen3.6-27B 같은 오픈웨이트 모델이 SWE-bench 기준 프론티어 모델에 근접한 성능을 내면서, 이제 로컬 코딩 에이전트가 "장난감 수준"을 벗어나 실무에서 쓸 만한 단계에 도달했습니다.

이번 글에서는 Qwen3.6-27B, Ollama, Aider 세 가지를 묶어서 실제로 동작하는 로컬 코딩 에이전트를 처음부터 끝까지 구축합니다.

왜 이 조합인가

세 도구가 각자 맡는 역할이 명확합니다.

 

Ollama는 모델 매니저입니다. GGUF 포맷 다운로드, 양자화, OpenAI 호환 API 노출까지 한 번에 처리해줘서 모델을 직접 컴파일하거나 서빙 코드를 짤 필요가 없습니다.

 

Qwen3.6-27B는 두뇌입니다. Dense 27B 모델임에도 SWE-bench Verified 77.2%를 기록하며 이전 세대 397B MoE 플래그십을 코딩 벤치마크에서 앞선 모델입니다.

 

Aider는 인터페이스입니다. Git 네이티브 구조라서 에이전트가 파일을 수정할 때마다 설명이 담긴 커밋을 자동으로 남기기 때문에, AI가 만든 변경 사항을 리뷰하고 되돌리기가 매우 쉽습니다.

 

이 조합의 핵심 장점은 코드가 로컬 머신을 벗어나지 않는다는 점입니다. Aider는 파일 내용, 레포 맵, 대화 기록을 모델에 전달하는데, Ollama를 백엔드로 쓰면 그 "모델"이 localhost에서 돌아가는 프로세스이기 때문에 어떤 데이터도 외부 API로 나가지 않습니다. NDA가 걸린 코드나 사내 규정상 외부 전송이 금지된 프로젝트에서는 이 점이 결정적입니다.

하드웨어 요구사항부터 확인

시작하기 전에 GPU 사양을 먼저 확인해야 합니다. Qwen3.6-27B는 Q4_K_M 양자화 기준 약 16.8GB VRAM이 필요합니다. RTX 4080 16GB에는 빡빡하게 들어가고, RTX 4090 24GB나 RTX 3090 24GB에서는 여유 있게 돌아갑니다. Q6_K로 올리면 약 22.5GB가 필요해서 RTX 4090이나 Mac M4 Pro 24GB가 적절합니다.

Apple Silicon이라면 M3 Max나 M4 Pro 48GB 유니파이드 메모리 환경에서 초당 40토큰 이상의 속도가 나옵니다.

GPU가 없거나 VRAM이 부족하다면 CPU 추론도 가능하지만 속도가 초당 1~5토큰 수준으로 크게 떨어집니다. 실무에서 쓸 만한 속도를 원한다면 최소 16GB VRAM GPU를 권장합니다.

Step 1: Ollama 설치와 모델 다운로드

macOS와 Linux는 공식 설치 스크립트로 간단하게 설치됩니다.

curl -fsSL https://ollama.ai/install.sh | sh

Windows는 Ollama 공식 사이트에서 인스톨러를 받아 설치합니다. 설치가 끝나면 Qwen3.6-27B 모델을 받습니다. 여기서 중요한 점은 태그를 명시적으로 지정해야 한다는 것입니다.

ollama pull qwen3.6:27b

qwen3.6만 입력하면 기본값으로 8B 모델이 받아지기 때문에, 27B 모델을 원한다면 반드시 qwen3.6:27b로 명시해야 합니다. 다운로드가 끝나면 바로 실행해서 정상 동작을 확인합니다.

ollama run qwen3.6:27b

여기서 간단한 프롬프트를 입력해 응답이 정상적으로 나오는지 확인하면 됩니다.

Step 2: 컨텍스트 윈도우 설정 — 가장 많이 놓치는 부분

Ollama의 기본 컨텍스트 윈도우는 2,048 토큰입니다. 약 1,500 단어 수준인데, 실제 코딩 작업에서는 파일 하나만 열어도 이 한도를 가볍게 넘깁니다. 이 설정을 그대로 두면 에이전트가 코드베이스의 일부만 보고 엉뚱한 수정을 하게 됩니다. 반드시 컨텍스트 윈도우를 확장해야 합니다.

작업 디렉터리에 Modelfile을 만들고 컨텍스트 길이를 지정합니다.

cat > Modelfile << 'EOF'
FROM qwen3.6:27b
PARAMETER num_ctx 32768
PARAMETER num_batch 1024
PARAMETER temperature 0.1
PARAMETER top_p 0.9
EOF

num_ctx를 32768로 설정하면 대부분의 실무 코딩 세션을 충분히 커버합니다. temperature는 0.1로 낮게 설정해서 코드 생성의 일관성을 높였습니다. num_batch는 고VRAM 환경에서 프롬프트 처리 속도를 높이는 값입니다. 이 Modelfile로 커스텀 모델 인스턴스를 빌드합니다.

ollama create qwen3.6-coder-32k -f Modelfile

빌드가 끝나면 qwen3.6-coder-32k라는 이름으로 확장된 컨텍스트 윈도우를 가진 모델 인스턴스가 생성됩니다. 이후 모든 명령에서 이 이름을 사용합니다.

Step 3: API 엔드포인트 확인

Ollama는 설치와 동시에 localhost:11434에서 OpenAI 호환 API를 노출합니다. 이 엔드포인트를 통해 Aider나 다른 클라이언트가 모델에 접근합니다. 정상 동작 여부를 curl로 빠르게 확인할 수 있습니다.

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.6-coder-32k",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

응답이 정상적으로 돌아오면 다음 단계로 넘어갑니다.

Step 4: Aider 설치와 연동

Aider는 pip로 설치합니다. Python 환경이 준비되어 있어야 합니다.

pip install aider-chat

Aider를 Ollama 백엔드와 연결하는 방법은 모델 이름 앞에 ollama_chat/ 프리픽스를 붙이고 환경변수로 API 베이스를 지정하는 것입니다.

export OLLAMA_API_BASE=http://localhost:11434
aider --model ollama_chat/qwen3.6-coder-32k

프로젝트 루트 디렉터리에서 이 명령을 실행하면 Aider가 Git 레포 구조를 인식하고 세션을 시작합니다. 이제 자연어로 작업을 지시하면 됩니다.

> Add input validation to the user registration endpoint.
> Make sure email format and password length are checked.

Aider가 관련 파일을 찾아 수정하고, 변경 사항을 설명이 담긴 커밋으로 자동 기록합니다. AI가 만든 모든 수정이 독립적인 커밋으로 남기 때문에 git log로 무엇이 바뀌었는지 추적하고, 마음에 들지 않으면 언제든 되돌릴 수 있습니다.

Step 5: Architect 모드로 품질 보완

로컬 27B 모델은 단일 파일 수정이나 명확하게 정의된 작업에는 강하지만, 복잡한 멀티 파일 아키텍처 설계에서는 프론티어 모델 대비 약점이 있습니다. Aider는 이 격차를 줄이는 Architect 모드를 제공합니다. 계획을 세우는 모델과 실제 코드를 작성하는 모델을 분리하는 방식입니다.

aider --architect --model ollama_chat/qwen3.6-coder-32k \
  --editor-model ollama_chat/qwen3.6-coder-32k

비용 여유가 있다면 Architect 역할만 클라우드 모델로 돌리고 실제 편집은 로컬 모델에 맡기는 하이브리드 구성도 가능합니다.

aider --architect --model anthropic/claude-opus-4 \
  --editor-model ollama_chat/qwen3.6-coder-32k

복잡한 설계 판단은 Claude가 계획을 세우고, 실제 파일 편집과 반복 작업은 로컬 모델이 처리하는 구조입니다. 토큰 소모가 큰 부분(반복적인 파일 편집)은 무료로 돌리고, 판단력이 중요한 부분만 유료 API를 쓰는 식으로 비용을 최소화할 수 있습니다.

실전: 하이브리드 라우팅으로 비용 더 줄이기

Aider뿐 아니라 OpenCode 같은 에이전트도 로컬·클라우드 모델을 동시에 등록해두고 작업 난이도에 따라 전환하는 라우팅을 지원합니다. OpenCode를 쓴다면 설정 파일에서 기본 모델과 추론용 모델을 분리할 수 있습니다.

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "api_url": "http://localhost:11434/v1"
    },
    "anthropic": {
      "api_key": "env:ANTHROPIC_API_KEY"
    }
  },
  "model": {
    "default": "ollama/qwen3.6-coder-32k",
    "fast": "ollama/qwen3.6:8b",
    "reasoning": "anthropic/claude-opus-4"
  }
}

일상적인 파일 수정이나 간단한 질문은 무료인 Ollama로, 복잡한 아키텍처 결정이나 대규모 리팩터링은 유료지만 강력한 Claude로 보내는 방식입니다. 세션 중 /model 명령으로 즉시 전환할 수도 있습니다. 이런 구성으로 운영하면 전체 작업의 80%를 차지하는 반복 작업은 로컬에서 무료로 처리하고, 정말 어려운 20%만 클라우드 모델 비용을 지불하는 구조가 됩니다. 월 $20~200 수준이던 비용이 $3~5 수준으로 떨어지는 경우가 많습니다.

 

솔직한 한계: 어디까지 기대할 수 있나

로컬 27B 모델의 실제 한계를 명확히 짚어야 합니다. 단일 함수 수정, 테스트 작성, 명확하게 정의된 버그 픽스에서는 충분히 실용적인 결과를 냅니다. 반면 여러 모듈에 걸친 대규모 리팩터링이나 모호한 요구사항에서 출발하는 아키텍처 설계는 여전히 프론티어 클라우드 모델 대비 격차가 있습니다. 긴 에이전트 세션에서 작업 맥락을 놓치거나, 같은 실수를 반복하는 경우도 보고됩니다.

 

컨텍스트 윈도우도 현실적인 제약입니다. 로컬 모델은 보통 32K~128K 토큰 수준에서 운용하는데, 클라우드 프론티어 모델은 200K 이상을 기본으로 지원합니다. 50K 토큰 규모의 코드베이스를 통째로 분석시키는 작업은 소비자급 하드웨어에서 느리게 처리됩니다. 결론적으로 "프라이버시가 중요하다", "비용을 0에 가깝게 만들고 싶다", "도구를 직접 커스터마이징하고 싶다"는 조건에서는 로컬 구성이 명확한 답이고, "가장 높은 품질의 모델 지능이 필요하다", "설정 없이 바로 쓰고 싶다"는 조건이라면 Claude Code 같은 완성형 제품이 여전히 더 나은 선택입니다.

 

결론

Qwen3.6-27B와 Ollama, Aider 조합은 30분 안에 직접 구축해보고 워크플로에 맞는지 판단할 수 있는 수준까지 와 있습니다. 단일 함수 수정과 테스트 작성, 표준 패턴의 버그 픽스 같은 반복 작업에서는 클라우드 API 없이도 실무 수준의 결과를 낼 수 있고, 코드가 로컬을 벗어나지 않는다는 점에서 보안이 중요한 환경에서는 대안이 아니라 필수에 가깝습니다.

복잡한 아키텍처 설계처럼 정말 어려운 작업만 Architect 모드로 클라우드 모델을 함께 쓰는 하이브리드 구성으로 가면, 비용과 품질 양쪽에서 합리적인 균형점을 잡을 수 있습니다. GPU가 이미 있다면 지금 당장 시도해볼 만한 가치가 있는 구성입니다.

 

반응형