본문 바로가기

AI Tools (AI 도구 리뷰)

RTX 3090 2대로 Qwen3-Coder 온프레미스 서빙하기: vLLM + VSCode 에이전트 연결 실전 가이드

개요

항목 내용

환경 RTX 3090 × 2 (VRAM 총 48GB)
서빙 도구 vLLM (OpenAI 호환 엔드포인트)
모델 Qwen3-Coder-30B-A3B-Instruct
연결 도구 Cline, Continue.dev, Aider
목적 온프레미스 Vibe Coding 환경 구성

이전 포스팅에서 RTX 3090 2대 환경에서 Vibe Coding 용도로 Qwen3-Coder 계열이 유리하다는 결론을 내렸다. 이번 글은 실제로 어떻게 올리고 VSCode에 붙이는지, 세팅 절차를 단계별로 정리한다.


1. 환경 준비

패키지 관리는 uv를 사용한다. pip 대비 의존성 해결이 빠르고 가상환경 격리가 명확하다.

uv venv && source .venv/bin/activate
uv pip install vllm

2. vLLM으로 모델 서빙

RTX 3090 2장이므로 --tensor-parallel-size 2가 핵심이다. 두 카드에 텐서를 분산하여 모델을 올린다.

vllm serve Qwen/Qwen3-Coder-30B-A3B-Instruct \
  --tensor-parallel-size 2 \
  --max-model-len 32768 \
  --port 8000

VRAM이 부족할 경우 AWQ 양자화 버전으로 대체한다.

vllm serve Qwen/Qwen3-Coder-30B-A3B-Instruct-AWQ \
  --tensor-parallel-size 2 \
  --max-model-len 32768 \
  --port 8000

Tool Calling이 필요한 경우 (Cline 등 에이전트 도구 사용 시 권장) 아래 옵션을 추가한다.

vllm serve Qwen/Qwen3-Coder-30B-A3B-Instruct \
  --tensor-parallel-size 2 \
  --max-model-len 32768 \
  --port 8000 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

컨텍스트 길이 설정 기준: --max-model-len은 KV 캐시 VRAM 사용량과 직접 트레이드오프 관계다. Vibe Coding 용도라면 32k가 속도와 품질의 균형점이다. 서버가 뜬 후 VSCode를 붙이기 전에 아래 명령으로 응답을 먼저 확인한다.

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-Coder-30B-A3B-Instruct",
    "messages": [{"role": "user", "content": "hello"}]
  }'

정상 응답이 확인된 이후 VSCode 확장을 붙인다. 순서가 중요하다.


3. VSCode 에이전트 연결

vLLM은 OpenAI 호환 엔드포인트를 제공하므로 OpenAI API를 지원하는 모든 에이전트 도구와 연결된다.

Continue.dev

~/.continue/config.json을 아래와 같이 수정한다.

{
  "models": [
    {
      "title": "Qwen3-Coder Local",
      "provider": "openai",
      "model": "Qwen/Qwen3-Coder-30B-A3B-Instruct",
      "apiBase": "http://localhost:8000/v1",
      "apiKey": "dummy"
    }
  ]
}

Cline / Roo Code

VSCode 확장 설치 후 설정에서 아래와 같이 입력한다.

API Provider : OpenAI Compatible
Base URL     : http://localhost:8000/v1
API Key      : (아무 값이나 입력, 예: local)
Model        : Qwen/Qwen3-Coder-30B-A3B-Instruct

Aider (터미널 기반)

aider \
  --openai-api-base http://localhost:8000/v1 \
  --openai-api-key dummy \
  --model openai/Qwen/Qwen3-Coder-30B-A3B-Instruct

도구별 특성 비교

도구 강점 적합한 상황

Cline / Roo Code 파일 편집 + 터미널 + 브라우저 통합 에이전트 루프 Vibe Coding 핵심 용도
Continue.dev 자동완성 + 채팅 혼합, 설정 유연 일반 코딩 보조
Aider Git 연동, diff 기반 수정, 터미널 친화적 Git 중심 리팩토링

세 도구 중 Vibe Coding의 실제 작업 흐름, 즉 파일 편집·터미널 실행·에이전트 루프에 가장 가까운 것은 Cline이다.

Claude Code와 직접 연결은 불가하다. Claude Code는 Anthropic API 전용으로 설계되어 있어 로컬 OpenAI 호환 엔드포인트를 바라보도록 설정할 수 없다.


추천 대상

vLLM 서빙과 VSCode 에이전트 연결을 한 번에 구성하려는 개발자. 이전 포스팅의 모델 선택 결론을 실제로 구현해보고 싶다면 이 글의 절차를 순서대로 따라가면 된다.