새소식

300x250
AI/OpenSource

Open Code 리뷰(3) : 오픈소스, 무료 및 저가 LLM 모델 활용 해보기 with Ollama, Qwen3, glm4.7, MiniMax M2.1 등

  • -
728x90

안녕하세요! 갓대희 입니다.
오늘은 OpenCode에서 사용할 수 있는 오픈소스, 무료 및 저가 LLM 모델들에 대해 알아보려고 한다.

 

"Claude나 GPT API 비용이 부담된다", "회사 보안 정책 때문에 외부 API를 쓸 수 없다", "오픈소스 모델을 사용해보고 싶다" - 이런 고민을 가진 개발자들을 위해 이 글을 준비했다.

 

OpenCode는 75개 이상의 LLM 제공자를 지원하는데, 그 중에는 무료인 로컬 모델부터 월 $3로 사용할 수 있는 저렴한 API까지 다양한 선택지가 있다. 이번 글에서는 이런 대안 모델들을 소개하고, 설정 방법까지 단계별로 안내하려고 한다.

OpenCode 시리즈
← Part 1: OpenCode 기초 Part 2: oh-my-opencode Part 3: 오픈소스, 무료 및 저가 LLM 모델 활용 (현재 글)
이 글을 읽기 전에
이 글은 OpenCode의 기본 사용법을 알고 있다는 전제하에 작성되었다. OpenCode가 처음이라면 먼저 Part 1: OpenCode 기초를 읽어보길 권한다.

목차

  1. 오픈소스, 무료 및 저가 LLM 모델 활용
    • 비용 절감
    • 보안 강화
    • 벤더 자유도
  2. 비용 비교표
  3. 대안 모델 카탈로그
    • 로컬 모델 (Ollama)
    • 저렴한 클라우드 API
  4. 설정 가이드 (Step by Step)
    • Ollama + Qwen3 설정
    • DeepSeek 설정
    • GLM-4.7 설정
    • MiniMax M2.1 설정
  5. 하드웨어 요구사항
  6. 실전 팁 & 트러블슈팅
  7. 주의사항 및 한계
  8. 자주 묻는 질문
  9. 참고 자료

 

1.  오픈소스, 무료 및 저가 LLM 모델

Claude나 GPT 같은 빅테크 모델이 가장 좋은 성능을 보여주는 건 사실이다. 하지만 모든 상황에서 이들이 최선의 선택은 아니다. 오픈소스, 무료 및 저가 LLM 모델 활용을 고려해야 하는 몇 가지 이유가 있다.

 

1) 비용 절감

AI 코딩 도구를 적극적으로 사용하면 비용이 빠르게 늘어난다.

LLM 서비스 비용은 크게 구독형(월 정액), API 종량제(토큰당 과금), 무료 티어로 나눌 수 있다.

Claude Code Max 플랜은 월 $100~$200, GLM Coding Plan은 월 $3부터 시작한다.

실제 비용 예시
  • 일반적인 코딩 세션: 약 50K~100K 토큰 사용
  • 하루 3시간 사용 시: 월 $50~$150 (Claude Sonnet 기준)
  • oh-my-opencode처럼 병렬 에이전트 사용 시: 월 $200+ 가능

반면 DeepSeek V3.2는 같은 작업을 50배 이상 저렴하게 처리할 수 있고, 로컬 모델(Ollama)을 사용하면 무료다.

 

2) 보안 강화

클라우드 LLM을 사용하면 코드가 외부 서버로 전송된다. 대부분의 경우 문제가 없지만, 민감한 프로젝트에서는 우려가 될 수 있다.

로컬 LLM의 보안 이점
  • 데이터 주권: 모든 데이터가 내 컴퓨터를 떠나지 않는다
  • 규정 준수: GDPR, HIPAA 등 데이터 보안 규정 준수가 쉬워진다
  • 학습 데이터 우려 없음: 프롬프트가 향후 모델 학습에 사용되지 않는다
  • 오프라인 작업: 인터넷 없이도 코딩 가능 (1인 개발자가 되어 해외 여행을 다니며, 비행기 모드로도 가능하다. 상상해봤다.)

 

3) 벤더 자유도

특정 LLM 제공자에 종속되면 가격 인상이나 서비스 변경에 취약해진다. OpenCode의 가장 큰 장점 중 하나는 75개 이상의 LLM을 자유롭게 전환할 수 있다는 것이다.

예를 들어, 평소에는 DeepSeek을 사용하다가 복잡한 리팩토링이 필요할 때만 Claude를 사용하는 식으로 비용을 최적화할 수 있다.

 

2. 비용 비교표

토큰(Token)이란?

LLM은 텍스트를 "토큰" 단위로 처리한다. 토큰은 단어보다 작은 단위로, 대략적으로:

  • 영어: 1 토큰 = 약 4글자 또는 0.75단어
  • 한글: 1 토큰 = 약 1~2글자 (영어보다 토큰을 더 많이 소비)
  • 코드: 100줄의 코드 = 약 1,000~2,000 토큰

실용적 기준: 1M(백만) 토큰은 대략 소설책 3~4권 분량이다. 일반적인 코딩 세션(2~3시간)에서 약 50K~100K 토큰을 사용한다.

주요 LLM 서비스의 가격을 구독형/API/무료로 구분하여 비교해보자.

 

2.1 구독형 플랜

월 정액 요금을 내고 사용량 제한 내에서 이용하는 방식이다.

서비스 플랜 월 요금 사용량 제한
Claude Code Pro $20 기본 사용량
Max 5x $100 Pro의 5배, Opus 4 접근 가능
Max 20x $200 5시간당 200~800 프롬프트
GLM/Z.AI Coding Lite $3 (첫 달) 5시간당 120 프롬프트
Coding Pro $15 (첫 달) 5시간당 600 프롬프트
💡 참고: OpenAI(ChatGPT Plus/Pro), Google(Gemini Advanced) 등도 구독형 플랜이 있으나, OpenCode에서 직접 사용하려면 API 키가 필요하다.

 

2.2 API 가격 (종량제)

사용한 토큰만큼 비용을 지불하는 방식이다. 모든 가격은 1M(백만) 토큰 기준이다.

모델 Input (1M) Output (1M) 비고
Claude Sonnet 4 $3 $15 균형잡힌 선택
Claude Opus 4.5 $15 $75 최신 플래그십
GPT-5 확인 필요 확인 필요 OpenAI 최신 모델
DeepSeek V3.2 $0.28 $0.42 Claude 대비 ~50배 저렴
GLM-4.7 $0.60 $2.20 오픈소스, 구독형도 가능
MiniMax-M2.1 $0.30 $1.20 Claude의 8% 가격, Sonnet 4.5 능가

 

2.3 무료 티어

비용 없이 사용할 수 있는 옵션들이다. 제한 조건을 확인하자.

서비스 무료 유형 지속성 제한 사항
Ollama (로컬) 완전 무료 영구 하드웨어 필요 (GPU 권장)
GLM-4.7 (로컬) 완전 무료 영구 오픈소스, 로컬 실행 시 무료
Groq 무료 티어 영구 14,400 req/day, 초과 시 429 에러
Google Gemini 무료 티어 ⚠️ 제한적 2025.12 대폭 축소: 2.5 Pro 25 RPD
OpenRouter 일부 모델 ⚠️ 변동 50 req/day, 모델 목록 수시 변경
DeepSeek 웹 채팅만 영구 API는 유료, 웹/앱만 무료

여기서 개인적인 생각이고, 전반적인 시장 반응 및 분위기를 봤을때 잠깐 다음 내용을 짚고 넘어가보자...

GLM-4.7이 성능면에서 꽤 높은 평가를 받고 있음에도 월 구독료가 $3이다. 이에 비해 Claude Code는 $100~$200의 Max 플랜을 사용하는 개발자분들이 많을 것 이다. 사실 매우 부담이 되는 가격임에도 성능이 매우 좋기 때문에 사용하고 있는 상황일텐데...

GLM-5가 출시되고 Claude Opus 4.5 수준의 성능이 나온다면 디지털 구독료를 줄이고자 하는 분들의 많은 사랑과 관심을 받지 않을까... 조심스레 예상 해보기도 한다.

⚠️ 가격 정보 안내
• 위 가격은 2025년 1월 기준이며, 수시로 변경될 수 있다.
• "확인 필요"로 표기된 항목은 공식 문서에서 직접 확인하지 못한 정보이다.
• 최신 가격은 각 서비스의 공식 페이지에서 확인하는 것을 권장한다.

공식 가격 페이지:
Claude Max Plan | GLM Coding Plan | DeepSeek API | Groq
직관적 비교
Claude Sonnet API로 한 달 $100을 쓴다면, DeepSeek API로 같은 작업을 약 $2~$3에 할 수 있다.
또는 GLM Coding Plan $3/월로 구독형 방식으로 사용할 수도 있다.
비용을 아예 들이지 않으려면 Ollama + Qwen3 로컬 조합을 추천한다.

 

3. 대안 모델 카탈로그

3.1 로컬 모델 (Ollama) - 무료

Ollama를 사용하면 내 컴퓨터에서 LLM을 직접 실행할 수 있다. API 비용이 별도로 발생하지 않는다.

용어 설명
  • MoE (Mixture of Experts): 여러 전문가 모델을 조합한 구조. 30B 파라미터 모델이라도 실제로는 3~8B만 활성화되어 빠르게 동작한다.
  • VRAM: GPU 메모리. 모델이 클수록 더 많은 VRAM이 필요하다.
  • ctx (Context Window): 한 번에 처리할 수 있는 텍스트 길이. 길수록 더 많은 코드를 한 번에 분석할 수 있다.
모델 크기 다운로드 특징 추천 용도
Qwen3-Coder:30B 30B (MoE) ~18GB 256K ctx, Tool Calling 지원 코딩 전용
Qwen3:8B 8B ~5GB 가볍고 빠름 간단한 작업, 탐색용
DeepSeek-R1:8B 8B ~5GB 추론 능력 강화 복잡한 로직 분석
Llama4-Scout:17B 17B ~12GB 멀티모달, 10M 컨텍스트 범용 작업
추천
로컬 모델 입문자에게는 Qwen3:8B를 추천. 16GB 이상 메모리 환경에서 무리 없이 돌아간다. 코딩 전용으로 고성능이 필요하다면 Qwen3-Coder:30B를 시도해보자. (32GB 이상 권장)
⚠️ 8GB Mac/PC에서는 3B 모델도 버벅일 수 있음. 16GB 미만이라면 클라우드 API를 권장한다.

 

3.2 저렴한 클라우드 API

로컬 하드웨어가 부족하거나, 더 강력한 성능이 필요하다면 저렴한 클라우드 API를 고려해볼 수 있다.

서비스 대표 모델 특징 가격
DeepSeek DeepSeek V3.2 671B MoE, MIT 라이선스 (상업적 사용 가능) $0.28 / 1M input
Z.AI (GLM) GLM-4.7 355B MoE, 200K ctx $3/월 Coding Plan
MiniMax MiniMax-M2.1 에이전트/코딩 특화 $0.30 / 1M input
참고
중국계 API(DeepSeek, GLM, MiniMax)는 가격 대비 성능이 뛰어나지만, 서버 위치나 데이터 정책이 우려된다면 로컬 모델을 고려하는 것이 좋다.

 

4. 설정 가이드 (Step by Step)

각 대안 모델을 OpenCode에서 사용하는 방법을 단계별로 안내한다.

시작하기 전 체크리스트
  • 디스크 여유 공간: 최소 10GB 이상 (8B 모델 기준), 30B 모델은 20GB 이상
  • GPU/VRAM 확인: GPU 없어도 가능하지만 느림. 확인 방법은 아래 참고
  • 터미널 기본 사용: cd, ls 등 기본 명령어를 알면 좋다
  • OpenCode 설치: 아직 설치 안 했다면 Part 1을 먼저 참고
내 PC의 GPU/VRAM 확인하는 방법
  • Windows: 작업 관리자(Ctrl+Shift+Esc) > 성능 탭 > GPU > "전용 GPU 메모리"
  • macOS: > 이 Mac에 관하여 > 추가 정보 > 메모리 (Apple Silicon은 통합 메모리)
  • Linux (NVIDIA): 터미널에서 nvidia-smi 실행

 

4.1 Ollama + Qwen3 설정

한번쯤 해볼만한 무료 조합이다. 로컬에서 Ollama로 Qwen3 모델을 실행하고, OpenCode와 연동한다.

너무 오래되긴 했지만 예전에 쓴 올라마설치 관련 글도 첨부... ( 갱신할 수 있으면 갱신 하도록 하겠습니다 ㅠ )

Ollama 설치 및 기초 사용방법 (feat 로컬 LLM 환경 구축해보기)

 

Step 1: Ollama 설치

// macOS (Homebrew 패키지 관리자 사용)
// Homebrew가 없다면 먼저 https://brew.sh 에서 설치
brew install ollama
brew services start ollama

// Linux (curl)
curl -fsSL https://ollama.com/install.sh | sh
systemctl start ollama

// Windows
# 1. https://ollama.com/download 에서 OllamaSetup.exe 다운로드
# 2. 설치 파일 실행 후 기본 옵션으로 설치
# 3. 설치 완료 후 Ollama가 자동으로 시스템 트레이에서 실행됨
Windows 사용자 참고
Windows에서 Ollama는 설치 후 자동으로 백그라운드에서 실행된다. 시스템 트레이(우측 하단)에서 Ollama 아이콘을 확인할 수 있다. 별도의 서비스 시작 명령이 필요 없다.

 

Step 2: 모델 다운로드

// 코딩 전용 모델 (권장) - 약 18GB, 다운로드에 10~30분 소요될 수 있음
ollama pull qwen3-coder:30b

 

// 가벼운 모델 (PC 사양이 낮을 때) - 약 5GB, 다운로드에 5~10분 소요
ollama pull qwen3:8b

 

MacBook 사양별 추천 모델

MacBook 통합 메모리(RAM) 용량에 따라 원활하게 실행 가능한 모델이 다르다. 아래 표는 2025년 1월 기준 Ollama 공식 라이브러리의 코딩 모델을 정리한 것이다.

RAM 추천 모델 다운로드 컨텍스트 특징
8GB
(M1/M2 Air 기본)
qwen2.5-coder:1.5b 986MB 32K 가장 가벼운 코딩 모델, 빠른 응답
qwen2.5-coder:3b 1.9GB 32K 균형잡힌 성능/속도
starcoder2:3b 1.7GB 16K 투명하게 학습된 오픈 코드 LLM
16GB
(M1/M2/M3 Pro 기본)
qwen2.5-coder:7b 4.7GB 32K 16GB 최적, 뛰어난 코드 품질
qwen3:8b 5.2GB 40K 범용 모델, 코딩 외 작업도 가능
codellama:7b 3.8GB 16K Meta의 코드 특화 LLM
starcoder2:7b 4.0GB 16K BigCode 프로젝트, 다국어 코드
24-36GB
(M2/M3 Max)
qwen2.5-coder:14b 9.0GB 32K 성능/속도 최적 밸런스
qwen3:14b 9.3GB 40K 범용 + 코딩 겸용
deepseek-coder-v2:16b 8.9GB 160K GPT-4 Turbo급 코딩 성능, 긴 컨텍스트
devstral:24b 14GB 128K Mistral의 코딩 에이전트용 모델
48-64GB
(M3/M4 Max/Ultra)
qwen3-coder:30b 19GB 256K 최고 성능 코딩 모델 (활성 파라미터 3.3B)
qwen2.5-coder:32b 20GB 32K GPT-4o에 근접한 코딩 성능
codellama:34b 19GB 16K Meta의 대형 코드 모델
💡 모델 선택 팁
  • 코딩 전용: qwen2.5-coder, qwen3-coder 시리즈가 코드 생성/수정에 가장 최적화
  • 긴 파일 처리: deepseek-coder-v2:16b (160K), qwen3-coder:30b (256K) 추천
  • 속도 우선: 파라미터 수가 적을수록 빠름 (1.5B > 3B > 7B)
  • 모델 교체: ollama pull [모델명]으로 언제든 다른 모델 추가 가능
Qwen2.5-Coder vs Qwen3-Coder: 어떤 걸 선택해야 할까?

Qwen3-Coder가 최신이지만, RAM 제약이 있다면 Qwen2.5-Coder가 실용적인 선택이다.

모델 HumanEval 최소 사이즈 필요 RAM
Qwen2.5-Coder-7B 84~88% 0.5B (398MB) 8GB~
Qwen3-Coder-30B SWE-Bench 70%+ 30B (19GB) 48GB+
결론:
  • 8~16GB MacBook: Qwen2.5-Coder만 선택 가능 (Qwen3-Coder는 최소 30B)
  • 32GB+ MacBook: Qwen3-Coder:30b 권장 (최신, 더 긴 컨텍스트)
  • Qwen2.5-Coder-7B는 33B급 모델과 비슷한 성능으로, 7B 사이즈 대비 매우 효율적

(출처: Qwen2.5-Coder 공식 블로그, Technical Report)

 

코딩 모델 상세 비교

모델 시리즈 사용 가능 크기 컨텍스트 강점 약점
Qwen2.5-Coder 0.5B, 1.5B, 3B, 7B, 14B, 32B 32K 다양한 크기 선택, 코드 품질 우수 컨텍스트 32K로 제한
Qwen3-Coder 30B, 480B 256K 256K 컨텍스트, MoE 구조로 효율적 최소 30B부터, 작은 크기 없음
DeepSeek-Coder-V2 16B, 236B 160K GPT-4 Turbo급 성능, 긴 컨텍스트 크기 선택 제한적
CodeLlama 7B, 13B, 34B, 70B 16K Meta 개발, Python 특화 버전 존재 컨텍스트 짧음, 업데이트 느림
StarCoder2 3B, 7B, 15B 16K 투명한 학습 데이터, 다국어 코드 최대 15B, 성능 한계
Devstral 24B 128K 에이전트/도구 사용 특화, 긴 컨텍스트 24B 단일 크기만 제공
⚠️ 메모리 사용량 참고
실제 구동 시 모델 파일 크기보다 1.5~2배 정도의 RAM이 필요하다. 예를 들어, 5GB 모델은 약 8~10GB RAM을 사용한다. 다른 앱을 함께 사용한다면 여유 있는 RAM을 확보해야 한다.

 

Step 3: OpenCode 설정

OpenCode 설정 파일을 생성하거나 수정한다. OS에 따라 경로가 다르다:

설정 파일 경로 (OS별)
  • macOS/Linux: ~/.config/opencode/opencode.json
  • Windows: %APPDATA%\opencode\opencode.json
    (보통 C:\Users\사용자이름\AppData\Roaming\opencode\opencode.json)

파일이 없다면? 폴더와 파일을 직접 생성하면 된다. 터미널에서:

# macOS/Linux
mkdir -p ~/.config/opencode && touch ~/.config/opencode/opencode.json
# Windows (PowerShell)
New-Item -Path "$env:APPDATA\opencode" -ItemType Directory -Force
New-Item -Path "$env:APPDATA\opencode\opencode.json" -ItemType File -Force

 

 - 올라마 연동과 관련하여 공식문서를 참고해도 되지만 별도로 정리해봤다.

 

⚠️ 중요: Ollama는 /connect, /models에서 자동으로 나타나지 않는다

Ollama는 OpenCode의 내장 provider가 아니다. DeepSeek, Anthropic처럼 /connect 명령어로 선택할 수 없다. 반드시 아래처럼 opencode.jsonCustom Provider로 직접 설정해야 한다.

설정 완료 후 /models에서 ollama/qwen3:8b 형태로 나타난다.

순정 OpenCode 설정 opencode.json
{
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen3:8b": {
          "name": "Qwen3 8B"
        },
        "qwen3-coder:30b": {
          "name": "Qwen3 Coder 30B"
        }
      }
    }
  }
}

 

oh-my-opencode 설정

oh-my-opencode에서 Ollama 로컬 모델을 사용하려면 두 파일을 설정해야 한다:

  1. opencode.json: 위의 순정 설정과 동일하게 provider 정의
  2. oh-my-opencode.json: 에이전트별 모델 매핑 (아래 예시)
// ~/.config/opencode/oh-my-opencode.json
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  "agents": {
    "Sisyphus": {
      "model": "ollama/qwen3-coder:30b"
    },
    "oracle": {
      "model": "ollama/qwen3-coder:30b"
    },
    "librarian": {
      "model": "ollama/qwen3:8b"
    },
    "explore": {
      "model": "ollama/qwen3:8b"
    }
  }
}
팁: Sisyphus(오케스트레이터)와 oracle(코드 리뷰)에는 더 큰 모델(30B)을, librarian과 explore에는 가벼운 모델(8B)을 지정하면 효율적이다.

ex) 나의 경우 explore를 qwen3:8b로 변경해보겠다.

 - 기존 설정 파일 백업

{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  "google_auth": false,
  "agents": {
    "librarian": {
      "model": "opencode/glm-4.7-free"
    },
    "explore": {
      "model": "google/antigravity-gemini-3-flash"
    },
    "frontend-ui-ux-engineer": {
      "model": "google/antigravity-gemini-3-pro-high"
    },
    "document-writer": {
      "model": "google/antigravity-gemini-3-flash"
    },
    "multimodal-looker": {
      "model": "google/antigravity-gemini-3-flash"
    }
  }
}

 

 - explore 를 qwen3:8b로 변경

{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  "google_auth": false,
  "agents": {
    "librarian": {
      "model": "opencode/glm-4.7-free"
    },
    "explore": {
      "model": "ollama/qwen3:8b"
    },
    "frontend-ui-ux-engineer": {
      "model": "google/antigravity-gemini-3-pro-high"
    },
    "document-writer": {
      "model": "google/antigravity-gemini-3-flash"
    },
    "multimodal-looker": {
      "model": "google/antigravity-gemini-3-flash"
    }
  }
}

 

Step 4: 모델 선택 및 실행

// OpenCode 실행 후 모델 변경
opencode
# 실행 후 /model 명령어로 ollama/qwen3-coder:30b 선택
/model 명령어 사용법
  1. OpenCode 실행 상태에서 /model 입력 후 Enter
  2. 등록된 모델 목록이 표시됨 (예: ollama/qwen3:8b, deepseek/deepseek-chat)
  3. 화살표 키(↑↓)로 원하는 모델 선택 후 Enter
  4. 선택한 모델로 즉시 전환됨

ex) 현재 ollama/qwen3:8b 설정 후 선택 가능한 모습

 - 해당 모델을 선택해본 후 

ex) Qwen3 8B

 - 코딩하는 예시면 좋겠지만, 이번 글에서는 그냥 동작 여부만 확인 하였다.

 

 ex) Qwen3 30B

  - 살짝 한글 대화에서의 어색함이 있어 보이긴 하다.

 

 

4.2 DeepSeek 설정

가장 가성비 좋은 클라우드 API이다. Claude 대비 약 50배 저렴하면서도 준수한 성능을 보여준다.

 

Step 1: API 키 발급

DeepSeek Platform에서 회원가입 후 API 키를 발급받는다.

중국 API 가입 시 알아두면 좋은 점
  • 한국 전화번호: DeepSeek은 대부분 한국 전화번호(+82)로 가입 가능하다. 문자 인증이 필요할 수 있다.
  • 결제 수단: 해외 결제가 가능한 신용카드(Visa, Mastercard)로 충전할 수 있다. 페이팔도 지원하는 경우가 있다.
  • 최소 충전 금액: 서비스마다 다르지만, 보통 $5~$10부터 시작 가능하다.
  • 영문 인터페이스: DeepSeek은 영문 인터페이스를 제공한다. 중국어를 몰라도 사용 가능하다.

 

Step 2: 환경변수 설정

// macOS/Linux: .zshrc 또는 .bashrc에 추가
// 어떤 파일에 추가할지 모르겠다면? 터미널에서 echo $SHELL 실행
// /bin/zsh면 .zshrc, /bin/bash면 .bashrc에 추가
export DEEPSEEK_API_KEY="your-api-key-here"

# 설정 적용 (터미널 재시작 대신)
source ~/.zshrc  # 또는 source ~/.bashrc
Windows에서 환경변수 설정
  1. Windows 검색에서 "환경 변수" 검색 > "시스템 환경 변수 편집" 클릭
  2. "환경 변수" 버튼 클릭
  3. "사용자 변수"에서 "새로 만들기" 클릭
  4. 변수 이름: DEEPSEEK_API_KEY, 변수 값: API 키 입력
  5. 확인 후 터미널을 새로 열어야 적용됨

 

Step 3: OpenCode 설정

순정 OpenCode 설정 opencode.json
{
  "provider": {
    "deepseek": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "DeepSeek",
      "options": {
        "baseURL": "https://api.deepseek.com/v1",
        "apiKey": "{env:DEEPSEEK_API_KEY}"
      },
      "models": {
        "deepseek-chat": {
          "name": "DeepSeek V3.2"
        },
        "deepseek-reasoner": {
          "name": "DeepSeek R1 (Reasoner)"
        }
      }
    }
  }
}

 

oh-my-opencode 설정

OpenCode가 DeepSeek을 기본 지원하므로 oh-my-opencode에서도 환경변수만 설정하면 바로 사용 가능하다:

  1. 환경변수: DEEPSEEK_API_KEY 설정 (위 Step 2 참고)
  2. oh-my-opencode.json: 에이전트별 모델 지정 (선택사항)
// ~/.config/opencode/oh-my-opencode.json
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  "agents": {
    "Sisyphus": {
      "model": "deepseek/deepseek-chat"
    },
    "oracle": {
      "model": "deepseek/deepseek-reasoner",
      "description": "Code review with reasoning model"
    },
    "librarian": {
      "model": "deepseek/deepseek-chat"
    },
    "explore": {
      "model": "deepseek/deepseek-chat"
    }
  }
}
비용 팁: DeepSeek은 Claude 대비 약 50배 저렴하다. oracle에 deepseek-reasoner(추론 모델)를 지정하면 코드 리뷰 품질이 향상된다.
{env:변수명} 문법이란?

OpenCode 설정 파일에서 {env:DEEPSEEK_API_KEY}는 "환경변수 DEEPSEEK_API_KEY의 값을 여기에 넣어라"라는 의미다. 설정 파일에 API 키를 직접 적지 않고, 환경변수로 관리하면 보안상 더 안전하다. (실수로 설정 파일을 GitHub에 올려도 키가 노출되지 않음)

 

4.3 GLM-4.7 설정

Z.AI(Zhipu)의 GLM-4.7은 $3/월 Coding Plan을 제공한다. 200K 컨텍스트 윈도우가 특징이다.

 

Step 1: 가입 및 구독 (API 키 방식)

Z.AI GLM Coding Plan은 Claude Code의 OAuth 연결 방식과 달리 API 키 방식을 사용한다. 구독 후 발급받은 API 키를 OpenCode에 설정하는 방식이다.

GLM Coding Plan 가입 순서
Z.AI(Zhipu) 플랫폼은 영문 인터페이스를 제공한다:
  1. Z.AI Open Platform 접속 → 우측 상단 "Login/Register" 클릭
  2. 이메일 가입 선택 (Email Registration) - 한국 이메일 가능
  3. "Plans" 메뉴에서 Coding Plan 구독 ($3/월 Lite 또는 $10/월 Standard)
  4. 구독 완료 후 "Console" → "API Keys" 메뉴에서 API 키 발급

⚠️ 중요: Coding Plan 구독자는 전용 엔드포인트 https://api.z.ai/api/coding/paas/v4를 사용해야 한다. 일반 API 엔드포인트와 다르다.

 

Step 2: OpenCode 설정

순정 OpenCode 설정 opencode.json (Coding Plan)
{
  "provider": {
    "zai-coding": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Z.AI Coding Plan",
      "options": {
        "baseURL": "https://api.z.ai/api/coding/paas/v4",
        "apiKey": "{env:ZAI_API_KEY}"
      },
      "models": {
        "glm-4.7": {
          "name": "GLM-4.7 (Coding Plan)",
          "limit": { "context": 200000 }
        }
      }
    }
  }
}
oh-my-opencode 설정

oh-my-opencode에서 Z.AI를 사용할 때 주의사항:

  • 일반 API: zai/glm-4.7 또는 zhipuai/glm-4.7
  • Coding Plan 구독자: zai-coding-plan/glm-4.7 사용 필수
// ~/.config/opencode/oh-my-opencode.json (Coding Plan 구독자용)
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  "agents": {
    "Sisyphus": {
      "model": "zai-coding-plan/glm-4.7"
    },
    "oracle": {
      "model": "zai-coding-plan/glm-4.7",
      "description": "Large-scale code review with 200K context"
    },
    "librarian": {
      "model": "zai-coding-plan/glm-4.7"
    },
    "explore": {
      "model": "zai-coding-plan/glm-4.7"
    }
  }
}
주의: Z.AI Coding Plan 구독자가 일반 zai provider를 사용하면 "Authorization Failure" 또는 "Insufficient Balance" 오류가 발생한다. 반드시 zai-coding-plan을 사용해야 한다.
💡 GLM 무료 모델 안내

Coding Plan 외에도 Z.AI는 완전 무료 모델을 제공한다:

  • glm-4.5-flash - 텍스트 전용, 빠른 응답
  • glm-4.6v-flash - 비전(이미지) 지원 포함

무료 모델은 일반 API 엔드포인트(https://open.bigmodel.cn/api/paas/v4)를 사용한다. 간단한 작업이나 테스트 용도로 비용 없이 사용할 수 있다.

고급 기능 참고

Z.AI GLM API는 다음과 같은 고급 기능도 제공한다:

  • Context Caching: 캐시된 입력 토큰에 대해 최대 82% 비용 절감
  • Preserved Thinking: 대화 턴 간 추론 맥락 유지 (Claude의 Extended Thinking과 유사)

이러한 고급 기능에 대한 상세 내용은 참고 자료의 Z.AI GLM 가이드를 참조하라.

 

4.4 MiniMax M2.1 설정

MiniMax M2.1은 Claude Sonnet 4.5를 능가하고 Claude Opus 4.5에 근접한 성능을 보이면서도 Claude의 8% 가격($0.30/M input, $1.20/M output)으로 제공되는 모델이다. 에이전트/코딩 작업에 특화되어 있으며 OpenCode와 호환된다.

MiniMax M2.1 특징
  • 성능: Multi-SWE-Bench 49.4% (Claude 3.5 Sonnet, Gemini 1.5 Pro 능가)
  • 가격: $0.30/M input, $1.20/M output (Claude의 약 8%)
  • 효율성: 10B 활성화 파라미터로 비용 효율적
  • 호환성: Claude Code, OpenCode, Cline, Kilo Code 등 지원
  • 로컬 실행: Ollama에서도 사용 가능

Step 1: API 키 발급

MiniMax Platform에서 계정을 생성하고 API 키를 발급받는다.

 

Step 2: 환경변수 설정

# ~/.zshrc 또는 ~/.bashrc에 추가
export MINIMAX_API_KEY="your-api-key-here"

 

Step 3: OpenCode 설정

순정 OpenCode 설정 opencode.json
{
  "provider": {
    "minimax": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "MiniMax",
      "options": {
        "baseURL": "https://api.minimax.io/anthropic/v1"
      },
      "models": {
        "minimax-m2.1": {
          "name": "MiniMax M2.1",
          "attachment": true,
          "limit": {
            "context": 128000,
            "output": 32000
          }
        }
      }
    }
  }
}
참고: 중국 내 사용자는 baseURL을 https://api.minimaxi.com/anthropic/v1로 변경해야 한다.

(선택) Ollama로 로컬 실행

API 비용 없이 로컬에서 MiniMax M2.1을 실행할 수도 있다. 단, 충분한 VRAM이 필요하다.

# Ollama로 MiniMax M2.1 설치 및 실행
ollama pull minimax-m2.1
ollama run minimax-m2.1
VRAM 요구사항: MiniMax M2.1 로컬 실행 시 최소 16GB VRAM 권장. 양자화 버전(GGUF)은 8GB로도 가능할 수 있다.
참고: HuggingFace GGUF 버전

 

4.5 여러 Provider 동시 사용하기

Ollama, DeepSeek, GLM을 모두 설정하고 상황에 맞게 전환하고 싶다면? 모든 provider 설정을 하나의 파일에 합치면 된다.

순정 OpenCode 설정 opencode.json
// opencode.json - 여러 provider를 하나의 파일에 합친 예시
{
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (Local)",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen3-coder:30b": { "name": "Qwen3 Coder 30B" },
        "qwen3:8b": { "name": "Qwen3 8B" }
      }
    },
    "deepseek": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "DeepSeek",
      "options": {
        "baseURL": "https://api.deepseek.com/v1",
        "apiKey": "{env:DEEPSEEK_API_KEY}"
      },
      "models": {
        "deepseek-chat": { "name": "DeepSeek V3.2" }
      }
    },
    "zai": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Z.AI (GLM)",
      "options": {
        "baseURL": "https://open.bigmodel.cn/api/paas/v4",
        "apiKey": "{env:ZAI_API_KEY}"
      },
      "models": {
        "glm-4.7": { "name": "GLM-4.7" }
      }
    }
  }
}
oh-my-opencode 설정

oh-my-opencode에서 여러 provider를 혼합 사용하려면:

  1. opencode.json: 위의 순정 설정과 동일하게 커스텀 provider 정의 (Ollama 등)
  2. oh-my-opencode.json: 에이전트별로 최적의 모델 배치
// ~/.config/opencode/oh-my-opencode.json - 하이브리드 구성 예시
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
  "agents": {
    "Sisyphus": {
      "model": "deepseek/deepseek-chat",
      "description": "Orchestrator - Cost-effective DeepSeek"
    },
    "oracle": {
      "model": "deepseek/deepseek-reasoner",
      "description": "Code review - Quality boost with reasoning"
    },
    "librarian": {
      "model": "ollama/qwen3:8b",
      "description": "Doc search - Cost saving with local model"
    },
    "explore": {
      "model": "ollama/qwen3:8b",
      "description": "Code navigation - Fast local response"
    },
    "frontend-ui-ux-engineer": {
      "model": "zai-coding-plan/glm-4.7",
      "description": "Frontend - Large UI work with 200K context"
    }
  }
}
하이브리드 전략 팁: 비용/속도/품질 균형을 위해 에이전트별로 다른 모델을 배치할 수 있다.
  • 오케스트레이터(Sisyphus): 호출 빈도가 높으므로 저렴한 모델 (DeepSeek, Ollama)
  • 코드 리뷰(oracle): 품질이 중요하므로 추론 모델 (deepseek-reasoner)
  • 탐색/검색: 속도가 중요하므로 로컬 모델 (Ollama)
모델 전환 방법
OpenCode 실행 중에 /model 명령어를 입력하면 등록된 모든 모델 목록이 표시된다.
예: ollama/qwen3:8b, deepseek/deepseek-chat, zai/glm-4.7 중 선택

 

5. 하드웨어 요구사항

로컬 모델을 사용하려면 어느 정도 하드웨어가 필요하다. 아래는 NVIDIA GPU 기준 요구사항이다. (Apple Silicon은 별도 참고)

모델 크기 최소 VRAM 권장 GPU 예시 모델
7-8B 8GB RTX 3070 / RTX 4060 Qwen3:8B, DeepSeek-R1:8B
14B 12GB RTX 3080 / RTX 4070 Qwen3:14B
30B (MoE) 16GB RTX 4080 / RTX 4090 Qwen3-Coder:30B

 

Apple Silicon (Mac) 사용자

Apple Silicon Mac은 통합 메모리(Unified Memory)를 사용하므로 VRAM 개념이 다르다.

  • M1/M2 (8GB): 3B 모델도 버벅일 수 있음, 7B 이상은 실용적이지 않음
  • M2 Pro/M3/M4 (16GB): 8B 모델 적당, 14B는 느림
  • M3 Pro/M4 Pro (32-48GB): 14B 쾌적, 30B(MoE) 가능
  • M3 Max/M4 Max (64-128GB): 대부분의 모델 실행 가능

 

CPU 전용 실행

GPU가 없어도 로컬 모델을 실행할 수 있지만, 속도가 상당히 느리다.

CPU 전용 성능
- 8B 모델 기준 약 10-30 tokens/sec (GPU 대비 5-10배 느림)
- 간단한 질문/답변은 괜찮지만, 긴 코드 생성은 불편할 수 있음
- RAM 16GB 이상 권장

tokens/sec가 뭔가요? LLM이 1초에 생성하는 토큰(단어 조각) 수다. 30 tokens/sec면 1초에 약 20~25단어를 출력한다. 사람이 읽는 속도보다 빠르니 간단한 답변에는 충분하다.

 

6. 실전 팁 & 트러블슈팅

Ollama 컨텍스트 윈도우 설정

Ollama의 기본 컨텍스트 윈도우는 4K로, 코딩 작업에는 부족할 수 있다. 32K로 늘리는 것을 권장한다.

// 컨텍스트 윈도우를 32K로 설정하여 실행
ollama run qwen3:8b --num-ctx 32768
--num-ctx 옵션은 매번 입력해야 하나요?

아니다. OpenCode 설정 파일(opencode.json)에서 "limit": { "context": 32000 }을 지정해두면 OpenCode에서 자동으로 적용된다. 위의 4.1 설정 예시에 이미 포함되어 있다.

 

시나리오별 모델 추천

시나리오 추천 모델 이유
취미/학습 Ollama + Qwen3:8B 무료, 충분한 성능
스타트업/소규모 팀 DeepSeek V3.2 저렴하면서 고품질
기업 (보안 중시) 로컬 모델 데이터 유출 위험 0%
복잡한 리팩토링 Claude/GPT (필요시만) 최고 성능 필요

 

흔한 문제 해결

문제: Ollama 연결 실패
  • Ollama 서비스가 실행 중인지 확인: ollama list
  • 포트 확인: curl http://localhost:11434
문제: Tool Calling이 작동하지 않음
  • 일부 로컬 모델은 Tool Calling(함수 호출)을 지원하지 않음
  • Qwen3-Coder 시리즈는 Tool Calling 지원이 우수함
  • DeepSeek API는 Tool Calling을 잘 지원함
문제: 메모리 부족 (Out of Memory)
  • 더 작은 모델 사용 (30B → 8B)
  • 컨텍스트 윈도우 줄이기 (32K → 8K)
  • 다른 프로그램 종료 후 재시도

 

7. 주의사항 및 한계

오픈소스, 무료 및 저가 LLM 모델을 사용할 때 알아두어야 할 한계점이 있다.

품질 트레이드오프

솔직한 평가
대안 모델들이 Claude/GPT 수준에 도달했다고 하기는 어렵다. 특히 다음 영역에서 차이가 난다:
  • 복잡한 아키텍처 설계 및 리팩토링
  • 미묘한 버그 탐지 및 수정
  • 자연스러운 코드 설명 및 문서화
  • 최신 프레임워크/라이브러리 지식

간단한 코드 생성, 기본적인 리팩토링, 문법 관련 질문 등에는 대안 모델도 충분히 유용하다.

 

Tool Calling 호환성

OpenCode의 고급 기능(파일 편집, 명령어 실행 등)은 Tool Calling에 의존한다. 일부 로컬 모델은 이를 지원하지 않거나 불안정하게 지원한다.

Tool Calling이 없으면 뭐가 안 되나요?

Tool Calling은 LLM이 "파일을 수정해줘"라는 요청을 받았을 때, 실제로 파일 편집 도구를 호출하는 기능이다. 이 기능이 없으면:

  • 파일 직접 수정 불가: LLM이 수정된 코드를 보여주기만 하고, 직접 파일을 편집하지 못함
  • 터미널 명령어 실행 불가: npm install, git 등의 명령어를 자동으로 실행할 수 없음
  • codebase 탐색 제한: 파일 구조를 스스로 읽고 분석하는 기능이 제한됨

결론: Tool Calling이 없으면 OpenCode의 핵심 기능인 "자동 코드 편집"이 작동하지 않는다. 반드시 Tool Calling을 지원하는 모델을 선택해야 한다.

Tool Calling 지원 현황
- 잘 지원 하는 편: Qwen3-Coder, DeepSeek API, GLM-4.7
- 부분 지원: Llama 4, Mistral
- 미지원/불안정: 일부 소형 모델

 

컨텍스트 윈도우 제한

로컬 모델의 컨텍스트 윈도우는 일반적으로 8K~32K로, Claude의 200K에 비해 훨씬 작다. 대규모 코드베이스를 한 번에 분석하기 어려울 수 있다.

 

8. 자주 묻는 질문

Q: 로컬 모델이 Claude만큼 좋은가요?

A: 솔직히 아직은 아니다. 하지만 간단한 코드 생성, 기본 리팩토링, 문법 질문 등에는 충분히 유용하다. 복잡한 작업은 Claude/GPT를 사용하고, 일상적인 작업은 대안 모델을 사용하는 하이브리드 전략을 추천한다.

Q: GPU 없이 로컬 모델을 돌릴 수 있나요?

A: 가능하지만 느리다. 8B 모델 기준 10-30 tokens/sec 정도로, 간단한 질문/답변은 괜찮지만 긴 코드 생성은 인내심이 필요하다. Apple Silicon Mac의 경우, 16GB 이상이면 적당하지만 8GB에서는 3B 모델도 버벅일 수 있다.

Q: API 키 없이 바로 시작할 수 있나요?

A: Ollama를 사용하면 API 키 없이 무료로 시작할 수 있다. 설치 → 모델 다운로드 → OpenCode 설정만 하면 된다.

Q: oh-my-opencode와 함께 사용할 수 있나요?

A: 가능하다. oh-my-opencode의 에이전트별로 다른 모델을 지정할 수 있다. 예를 들어, Explore 에이전트는 로컬 모델(빠른 탐색용)을, Sisyphus는 Claude(핵심 작업용)를 사용하는 식으로 비용을 최적화할 수 있다.

 

9. 참고 자료

Z.AI GLM 상세 가이드

GLM 무료 모델, Context Caching, Preserved Thinking 등의 고급 기능에 대한 상세 내용은 위 가이드를 참조하라.

이 가이드는 2025년 1월 기준으로 작성되었다. API 가격 및 모델 성능은 변경될 수 있으므로, 최신 정보는 각 서비스의 공식 문서를 참고하기 바란다.

300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.

💡 AI 관련 질문이 있나요? 눌러보세요!