API 비용 청구서를 보다가 멀티모달 모델은 비싸서 못 쓰겠다고 생각한 적 있으면 이 글이 딱입니다. 알리바바가 6월 1일 공개한 Qwen3.7 Plus는 이미지와 영상을 읽고, 1M 토큰 컨텍스트를 지원하면서 입력 토큰당 $0.32/1M입니다. GPT-5.5 출력 비용($30/1M)의 1/9 수준입니다. 직접 돌려봤습니다.
핵심 요약
Qwen3.7 Plus는 2026년 6월 1일 알리바바 클라우드 Model Studio(Bailian)에서 정식 출시됐습니다. 약 18일간 Preview 딱지를 달고 LM Arena에서 실전 검증을 거친 뒤 GA로 전환됐습니다.
형제 모델인 Qwen3.7 Max와 포지셔닝이 명확하게 나뉩니다. Max는 텍스트 전용 플래그십으로 35시간 자율 실행 데모로 이름을 날렸고, Plus는 이미지와 영상 입력을 더한 멀티모달 버전입니다. 성능은 Max가 SWE-bench 기준 60.6%로 Plus의 57.6%보다 3포인트 앞서지만, 가격은 Max($2.50/1M 입력)가 Plus($0.32/1M 입력)보다 약 6배 비쌉니다. 이미지와 영상이 필요 없는 순수 텍스트 에이전트 워크로드에서는 Max가 맞고, 시각 입력이 들어오는 작업은 Plus입니다.
멀티모달 성능 지표에서 GUI 자동화 벤치마크 ScreenSpot Pro에서 79.0을 찍었는데, 이건 Claude Computer Use나 OpenAI Operator와 같은 tier로 분류되는 점수입니다. 스크린샷을 보고 어떤 버튼을 클릭해야 하는지 좌표를 찾아내거나, 모바일 앱 UI를 탐색하는 작업에서 실용적으로 쓸 수 있는 수준이라는 의미입니다.
주의할 점도 있습니다. Qwen3.7 Plus는 API 전용이라 오픈웨이트가 없습니다. 알리바바 DashScope를 통해서만 접근 가능하고, 자체 호스팅이 필요하다면 Qwen3.6 계열로 내려가야 합니다. 영상 입력을 지원하지만 이미지와 영상을 생성하지는 않습니다. 보고 분석하는 기능이고, 생성은 별도 모델 패밀리입니다.
실전 1: API 연동 기본 세팅
Qwen3.7 Plus는 OpenAI 호환과 Anthropic 호환 엔드포인트를 둘 다 지원합니다. 기존 코드에서 base_url과 api_key만 바꾸면 됩니다. DashScope API 키는 dashscope.aliyuncs.com에서 발급받습니다.
베이징, 싱가포르, 미국-버지니아 세 개 리전 엔드포인트가 있어서, 한국에서 사용할 때는 싱가포르 엔드포인트가 지연시간이 가장 짧습니다.
from openai import OpenAI
import os
# OpenAI 호환 방식 (권장)
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1" # 싱가포르
# 미국: https://dashscope.aliyuncs.com/compatible-mode/v1
)
# 기본 텍스트 요청
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "user", "content": "Python으로 퀵소트를 구현하고 시간복잡도 설명해줘"}
],
max_tokens=2048,
temperature=0.7
)
print(response.choices[0].message.content)
print(f"토큰: 입력 {response.usage.prompt_tokens}, 출력 {response.usage.completion_tokens}")
# 비용 계산: 입력 * 0.00000032 + 출력 * 0.00000128 (달러)
응답 속도는 처음 토큰까지 약 1~2초로 Gemini 3.5 Flash보다 느리지만 GPT-5.5보다는 빠릅니다. 긴 컨텍스트 작업에서 지연이 늘어나는 정도는 다른 1M 컨텍스트 모델들과 비슷합니다.
실전 2: 이미지 입력 — 스크린샷 분석과 코드 생성
Qwen3.7 Plus의 핵심 차별점인 이미지 입력입니다. URL로 직접 이미지를 참조하거나 base64로 인코딩해서 전달합니다. 에러 스크린샷을 보내면 원인 분석, UI 목업을 보내면 HTML 코드 생성처럼 시각 입력에서 코드를 만들어내는 워크플로우에서 가장 실용적입니다.
멀티모달 요청도 동일한 OpenAI 호환 포맷을 씁니다. content를 리스트로 넘기고 image_url 타입 블록을 섞으면 됩니다.
import base64
from pathlib import Path
def encode_image(image_path: str) -> str:
"""이미지 파일을 base64로 인코딩"""
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
# 방법 1: URL로 이미지 전달
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/screenshot.png"
}
},
{
"type": "text",
"text": "이 스크린샷의 에러 원인을 분석하고 Python 코드로 수정 방법을 알려줘"
}
]
}
],
max_tokens=2048
)
# 방법 2: 로컬 이미지 base64 인코딩
image_data = encode_image("./error_screenshot.png")
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{image_data}"
}
},
{
"type": "text",
"text": "이 UI 디자인을 그대로 HTML/CSS로 구현해줘. Tailwind CSS 사용해도 됨."
}
]
}
],
max_tokens=4096
)
print(response.choices[0].message.content)
직접 테스트해보면 Figma 스크린샷을 주고 HTML을 뽑는 작업에서 레이아웃과 색상을 꽤 정확하게 재현합니다. 픽셀 퍼펙트 수준은 아니지만 초안 작성에서 시간을 크게 줄여줍니다.
실전 3: 영상 입력 — 동영상 분석
Qwen3.7 Plus는 영상 파일도 직접 이해합니다. 유튜브 URL이나 로컬 영상 파일을 넘기면 영상 안의 내용을 텍스트로 분석해줍니다. 에러 재현 영상을 분석하거나, 디자인 시연 영상에서 컴포넌트를 추출하는 식으로 쓸 수 있습니다.
영상 입력은 DashScope 네이티브 API 방식을 쓰는 게 더 안정적입니다. OpenAI 호환 방식에서 영상 지원이 아직 완전하지 않은 경우가 있습니다.
import dashscope
from dashscope import MultiModalConversation
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1"
# 영상 URL로 분석
messages = [
{
"role": "user",
"content": [
{
"video": "https://example.com/demo.mp4",
"type": "video"
},
{
"text": "이 영상에서 UI 버그가 발생하는 시점을 찾고, 원인을 코드 레벨에서 추측해줘",
"type": "text"
}
]
}
]
response = MultiModalConversation.call(
model="qwen3.7-plus",
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])
영상 분석은 짧은 클립(30초~2분)에서 가장 정확합니다. 10분 이상 영상은 1M 컨텍스트를 활용하지만 처리 시간이 눈에 띄게 늘어나고, 영상 전체를 균등하게 분석하지 않고 앞뒤 부분에 더 집중하는 경향이 있습니다.
실전 4: 1M 컨텍스트 — 대형 코드베이스 분석
1M 토큰 컨텍스트의 실용적인 활용은 대형 레포지토리 전체를 한 번에 넣고 분석하는 것입니다. 일반적인 Python 프로젝트 기준으로 파일 수백 개를 한 번에 올릴 수 있습니다. 컨텍스트 캐싱을 함께 쓰면 반복 호출 비용을 $0.08/1M까지 줄일 수 있습니다.
컨텍스트가 길어질수록 비용이 쌓이므로 캐싱 설정을 반드시 챙겨야 합니다.
import os
from pathlib import Path
def load_codebase(directory: str, extensions: list[str] = [".py", ".ts", ".js"]) -> str:
"""코드베이스 전체를 하나의 문자열로 로드"""
files_content = []
for ext in extensions:
for file in Path(directory).rglob(f"*{ext}"):
if "node_modules" in str(file) or ".git" in str(file):
continue
try:
content = file.read_text(encoding="utf-8")
files_content.append(f"=== {file} ===\n{content}\n")
except Exception:
continue
return "\n".join(files_content)
# 코드베이스 로드 (1M 토큰 = 약 750K 단어 = 수백 개 파일)
codebase = load_codebase("./my-project")
print(f"로드된 코드베이스: {len(codebase):,} 문자")
# 캐싱 활성화한 분석 요청
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{
"role": "system",
"content": codebase # 시스템 프롬프트에 코드베이스 넣기 (캐싱 유리)
},
{
"role": "user",
"content": "이 코드베이스에서 보안 취약점을 찾아줘. SQL 인젝션, XSS, 인증 우회 가능성을 중심으로"
}
],
max_tokens=4096,
extra_body={
"enable_search": False # 웹 검색 비활성화로 일관성 유지
}
)
print(response.choices[0].message.content)
캐시된 입력 토큰은 $0.08/1M이라 긴 컨텍스트를 반복 사용하는 에이전트 파이프라인에서 비용 절감 효과가 큽니다. 같은 코드베이스로 여러 질문을 할 때는 시스템 프롬프트에 코드베이스를 넣어두는 패턴이 캐싱 효율이 가장 높습니다.
실전 5: Qwen3.7 Max vs Plus 비교 테스트
같은 프롬프트를 두 모델에 동시에 보내서 품질과 비용을 직접 비교하는 스크립트입니다. 어떤 태스크에서 Max가 추가 비용을 정당화하는지 확인할 수 있습니다.
import time
def compare_qwen(prompt: str, task: str):
results = {}
for model, label in [("qwen3.7-plus", "Plus"), ("qwen3.7-max", "Max")]:
start = time.time()
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
max_tokens=1024,
temperature=0.3
)
elapsed = time.time() - start
# 비용 계산
if "plus" in model:
cost = (resp.usage.prompt_tokens * 0.32 + resp.usage.completion_tokens * 1.28) / 1_000_000
else:
cost = (resp.usage.prompt_tokens * 2.50 + resp.usage.completion_tokens * 7.50) / 1_000_000
results[label] = {
"output": resp.choices[0].message.content,
"tokens": resp.usage.total_tokens,
"time": elapsed,
"cost_usd": cost
}
print(f"\n[{label}] {elapsed:.1f}s | ${cost:.5f}")
print(resp.choices[0].message.content[:400])
return results
# 코딩 태스크
compare_qwen(
"FastAPI로 JWT 인증 미들웨어를 구현해줘. refresh token 로테이션 포함.",
"coding"
)
# 추론 태스크
compare_qwen(
"다음 알고리즘의 시간복잡도를 Big-O로 분석하고 최적화 방법을 제시해줘:\n"
"for i in range(n):\n for j in range(n):\n if arr[i] > arr[j]: swap(arr, i, j)",
"reasoning"
)
직접 돌려보면 코드 생성에서 두 모델이 품질 차이가 크지 않고, Max가 앞서는 건 복잡한 다단계 추론이나 모호한 요구사항을 스스로 해석해야 하는 태스크입니다. 대부분의 코딩·분석 작업은 Plus로 충분합니다.
마무리
Qwen3.7 Plus는 멀티모달 모델을 API 비용 때문에 못 쓰던 팀에게 현실적인 선택지가 생겼다는 의미입니다. GPT-5.5의 1/9 출력 가격에 이미지·영상 입력, 1M 컨텍스트, GUI 자동화를 묶어서 제공합니다. 오픈웨이트가 없고 알리바바 API에 종속된다는 점, 영상 처리가 긴 클립에서 불안정하다는 점은 분명한 한계입니다. 반면 시각 입력이 있는 에이전트 파이프라인이나 대형 코드베이스 분석처럼 토큰을 많이 쓰는 워크로드에서는 비용 대비 성능이 현재 멀티모달 모델 중 가장 납득됩니다.
https://cell-devlog.tistory.com/490
Qwen 3.7 한국어 성능 실전 테스트: 중국산 오픈소스 LLM, 실제로 쓸 수 있나?
API 비용이 쌓이기 시작하면 로컬 LLM을 찾게 됩니다. 문제는 영어 벤치마크 숫자는 넘쳐나는데 한국어로 실제로 어떻게 동작하는지 확인한 자료가 없다는 점입니다. Qwen 3.7 계열을 직접 돌려보고
cell-devlog.tistory.com
'LLM' 카테고리의 다른 글
| GLM-5.2 실전 테스트: GPT-5.5 앞지른 오픈소스 코딩 모델, 1/6 가격에 Claude Code까지 붙는다 (0) | 2026.06.23 |
|---|---|
| DeepSeek V4 로컬 실행 완전분석 (0) | 2026.06.23 |
| Qwen 3.7 한국어 성능 실전 테스트: 중국산 오픈소스 LLM, 실제로 쓸 수 있나? (0) | 2026.06.23 |
| vLLM vs SGLang — 프로덕션 LLM 서빙 프레임워크 어떻게 골라야 하나 (0) | 2026.06.15 |
| Windows AI 로컬 에이전트 Aion 1.0 — OS에 내장된 14B 추론 모델이 뭘 바꾸나 (0) | 2026.06.15 |