OpenRouter 콴웬 3.6 사용법: 지금 바로 사용하세요

Ashley Innocent

Ashley Innocent

31 March 2026

OpenRouter 콴웬 3.6 사용법: 지금 바로 사용하세요

Apidog 엔터프라이즈

온프레미스 배포

SSO & RBAC

SOC 2 준수

Apidog Enterprise 살펴보기

요약

Qwen 3.6 Plus Preview가 2026년 3월 30일에 출시되었으며, 100만 토큰 컨텍스트 창, 필수적인 사고 과정(chain-of-thought) 추론 및 도구 사용 지원 기능을 갖추고 있습니다. 현재 OpenRouter에서 완전히 무료로 사용할 수 있습니다. OpenAI 호환 클라이언트에서 모델 ID qwen/qwen3.6-plus-preview:free를 사용하여 지금 바로 요청을 보낼 수 있습니다.

조용히 등장한 모델

Alibaba Cloud는 2026년 3월 30일에 Qwen 3.6 Plus Preview를 공개했습니다. 화려한 발표나 대기 목록 없이, OpenRouter에서 100만 토큰당 $0에 사용할 수 있는 새로운 모델로 등장했습니다.

출시 후 이틀 동안, 약 40만 건의 요청에 걸쳐 4억 개 이상의 완성 토큰을 처리했습니다. 개발자들은 이 모델이 빠르다는 것을 확인했습니다.

이 글에서는 계정 설정, API 키, cURL, Python, Node.js용 작동 코드 예제, 그리고 이 모델이 가장 잘 작동하는 분야에 대한 구체적인 조언 등 시작하고 실행하는 데 필요한 모든 것을 안내합니다.

💡
어떤 AI API를 기반으로 구축하든, 요청을 안정적으로 테스트하고 디버그하는 방법이 필요할 것입니다. Apidog가 이를 잘 처리합니다. 무료이며 OpenRouter를 포함한 모든 REST API와 작동합니다.
button

이 가이드를 마치면 Qwen 3.6을 무료로 호출하는 방법, 그 기능 및 한계점을 정확히 알게 될 것입니다.

Qwen 3.5 시리즈에 비해 Qwen 3.6의 추가 기능

3.5에서 3.6으로의 도약은 점진적이지 않습니다. 세 가지가 의미 있는 방식으로 변경되었습니다.

1. 컨텍스트 창이 100만 토큰으로 증가했습니다

Qwen 3.5는 버전에 따라 32K에서 128K의 컨텍스트 창을 가졌습니다. Qwen 3.6은 100만 토큰 입력을 지원합니다.

실용적인 측면에서 보면: 100만 토큰은 약 75만 단어입니다. 이는 전체 코드베이스, 1년치 Slack 로그, 모든 법률 문서 라이브러리 또는 대규모 연구 코퍼스를 한 번의 요청으로 모델에 제공하기에 충분한 양입니다.

대부분의 무료 모델은 8K에서 32K가 최대입니다. 100만 토큰을 무료로 얻는 것은 흔치 않습니다.

2. 추론 기능이 내장되어 있으며 선택 사항이 아닙니다

Qwen 3.6은 필수적인 추론 토큰을 사용합니다. 모델이 최종 답변을 생성하기 전에 내부적인 사고 과정(chain-of-thought)을 생성합니다. "단계별로 생각하라"거나 특별한 지시를 내릴 필요가 없습니다.

이는 DeepSeek R1이 대중화한 것과 동일한 패턴입니다. 차이점은 Qwen 3.6이 수학뿐만 아니라 코딩, 프론트엔드, 일반적인 문제 해결 작업 전반에 걸쳐 이를 적용한다는 점입니다.

3. 에이전트적 행동이 더 신뢰할 수 있습니다

3.5 시리즈의 도구 호출은 일관성이 없었습니다. 함수가 잘못된 인자 유형으로 호출되거나, 모델이 존재하지 않는 함수 호출을 환각하는 경우가 있었습니다.

Qwen 3.6은 이를 직접적으로 해결합니다. Alibaba Cloud의 설명에 따르면, "3.5 시리즈에 비해 더 강력한 추론과 더 신뢰할 수 있는 에이전트적 행동을 제공합니다." 실제로 이는 다단계 워크플로우에서 손상된 도구 호출이 줄어든다는 것을 의미합니다.

이 모델은 특히 세 가지 작업에 최적화되어 있습니다:

Qwen 3.6을 무료로 이용하는 방법

두 가지가 필요합니다: OpenRouter 계정 및 API 키. 무료 모델의 경우 신용 카드가 필요하지 않습니다.

1단계: OpenRouter 계정 생성

openrouter.ai로 이동하여 이메일 또는 Google 계정으로 가입하세요. 전체 과정은 2분 이내에 완료됩니다.

무료 모델은 결제 수단 추가를 요구하지 않습니다. 이메일 인증 후 즉시 액세스할 수 있습니다.

2단계: API 키 생성

  1. 오른쪽 상단 모서리에 있는 프로필 아바타를 클릭합니다
  2. 드롭다운에서 API Keys를 선택합니다
  3. Create Key를 클릭합니다
  4. 이름을 지정하고 (예: qwen-test) Create를 클릭합니다
  5. 키를 복사합니다. sk-or-v1-...으로 시작합니다

이것을 안전한 곳에 보관하세요. OpenRouter는 다시 표시하지 않습니다.

3단계: 첫 번째 요청 보내기

모델 ID는 qwen/qwen3.6-plus-preview:free입니다.

OpenRouter는 OpenAI API와 동일한 요청 형식을 사용하므로, 모든 OpenAI 호환 클라이언트가 수정 없이 작동합니다.

cURL:

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer sk-or-v1-YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen/qwen3.6-plus-preview:free",
    "messages": [
      {
        "role": "user",
        "content": "Write a Python function that parses a JWT token and returns the payload as a dictionary."
      }
    ]
  }'

Python (requests 라이브러리):

import requests

def call_qwen(prompt: str, api_key: str) -> str:
    response = requests.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
        },
        json={
            "model": "qwen/qwen3.6-plus-preview:free",
            "messages": [{"role": "user", "content": prompt}],
        },
        timeout=60,
    )
    response.raise_for_status()
    return response.json()["choices"][0]["message"]["content"]

result = call_qwen(
    "Write a Python function that parses a JWT token and returns the payload.",
    api_key="sk-or-v1-YOUR_KEY_HERE"
)
print(result)

Node.js (fetch):

async function callQwen(prompt, apiKey) {
  const response = await fetch("https://openrouter.ai/api/v1/chat/completions", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "qwen/qwen3.6-plus-preview:free",
      messages: [{ role: "user", content: prompt }],
    }),
  });

  if (!response.ok) {
    throw new Error(`OpenRouter error: ${response.status} ${await response.text()}`);
  }

  const data = await response.json();
  return data.choices[0].message.content;
}

callQwen(
  "Write a JavaScript function that validates an email address.",
  "sk-or-v1-YOUR_KEY_HERE"
).then(console.log);

OpenAI SDK를 사용한 Python:

이미 OpenAI Python SDK를 사용하고 있다면, 다른 변경 없이 OpenRouter를 가리키도록 설정할 수 있습니다:

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-v1-YOUR_KEY_HERE",
)

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=[
        {
            "role": "system",
            "content": "You are a senior backend engineer. Write clean, production-ready code."
        },
        {
            "role": "user",
            "content": "Write a Python function that retries a failed HTTP request up to 3 times with exponential backoff."
        }
    ],
)

print(response.choices[0].message.content)

도구 사용 및 에이전트 워크플로우

Qwen 3.6이 무료 계층에서 돋보이는 부분은 도구 사용입니다. 다음은 작동 예제입니다:

from openai import OpenAI
import json

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-v1-YOUR_KEY_HERE",
)

# Define the tools available to the model
tools = [
    {
        "type": "function",
        "function": {
            "name": "search_api_docs",
            "description": "Search the API documentation for a specific endpoint or parameter",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "The search query"
                    },
                    "version": {
                        "type": "string",
                        "enum": ["v1", "v2", "v3"],
                        "description": "API version to search"
                    }
                },
                "required": ["query"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "run_api_test",
            "description": "Execute a test request against an API endpoint",
            "parameters": {
                "type": "object",
                "properties": {
                    "endpoint": {"type": "string"},
                    "method": {"type": "string", "enum": ["GET", "POST", "PUT", "DELETE"]},
                    "body": {"type": "object"}
                },
                "required": ["endpoint", "method"]
            }
        }
    }
]

messages = [
    {
        "role": "user",
        "content": "Find documentation for the /users endpoint and run a test GET request against it."
    }
]

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=messages,
    tools=tools,
    tool_choice="auto",
)

message = response.choices[0].message

# Check whether the model wants to call a tool
if message.tool_calls:
    for tool_call in message.tool_calls:
        print(f"Tool: {tool_call.function.name}")
        args = json.loads(tool_call.function.arguments)
        print(f"Arguments: {json.dumps(args, indent=2)}")
else:
    print(message.content)

모델은 자유 형식 응답을 환각하는 대신 구조화된 함수 호출을 생성합니다. 그런 다음 사용자 코드에서 해당 함수를 실행하고 다음 차례에 결과를 다시 피드백합니다.

이것이 다단계 에이전트 워크플로우가 구축되는 방식입니다: 모델이 도구를 호출하고, 사용자 코드가 이를 실행하며, 작업이 완료될 때까지 반복합니다.

100만 토큰 컨텍스트 창 사용하기

100만 토큰 컨텍스트는 단순한 질문에는 유용하지 않습니다. 이 모델은 모델에 한 번에 많은 양의 컨텍스트를 제공해야 하는 작업에 맞게 설계되었습니다.

다음은 실제로 중요한 세 가지 패턴입니다:

전체 코드베이스 검토

모델에 전체 코드베이스(토큰 한도 내에서)를 제공하고 보안 문제, 일관성 없는 패턴 또는 문서화되지 않은 함수를 식별하도록 요청할 수 있습니다.

import os
from pathlib import Path
from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-v1-YOUR_KEY_HERE",
)

def load_codebase(directory: str, extensions: list[str]) -> str:
    """Load all source files from a directory into a single string."""
    content_parts = []
    for path in Path(directory).rglob("*"):
        if path.suffix in extensions and path.is_file():
            try:
                text = path.read_text(encoding="utf-8", errors="ignore")
                content_parts.append(f"--- FILE: {path} ---\n{text}\n")
            except Exception:
                continue
    return "\n".join(content_parts)

codebase = load_codebase("./src", [".py", ".js", ".ts"])

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=[
        {
            "role": "user",
            "content": f"Review this codebase and identify:\n1. Security vulnerabilities\n2. Functions with no error handling\n3. Inconsistent naming conventions\n\nCodebase:\n{codebase}"
        }
    ],
)

print(response.choices[0].message.content)

대규모 문서 분석

긴 법률 문서, 재무 보고서 또는 연구 논문을 전달하고 이에 대해 구체적인 질문을 할 수 있습니다.

with open("annual_report_2025.txt", "r") as f:
    document = f.read()

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=[
        {
            "role": "user",
            "content": f"Extract all mentions of API rate limits and pricing changes from this document:\n\n{document}"
        }
    ],
)

전체 기록을 포함한 다단계 대화

전체 대화 기록을 잘라내지 않고 컨텍스트에 유지하여 긴 디버깅 세션이나 기술 면접에 유용하게 사용할 수 있습니다.

conversation = []

def chat(user_message: str) -> str:
    conversation.append({"role": "user", "content": user_message})
    
    response = client.chat.completions.create(
        model="qwen/qwen3.6-plus-preview:free",
        messages=conversation,
    )
    
    assistant_message = response.choices[0].message.content
    conversation.append({"role": "assistant", "content": assistant_message})
    return assistant_message

# Long back-and-forth debugging session
print(chat("I'm getting a 401 error from the GitHub API. Here's my code..."))
print(chat("I added the token but now I get a 403. The token has repo scope."))
print(chat("The repo is private. What scopes do I actually need?"))

Apidog로 OpenRouter API 요청 테스트하기

OpenRouter API를 기반으로 구축할 때, 실패한 요청을 디버깅하는 것은 빠르게 지루해집니다. HTTP 요청을 만들고, JSON 응답을 확인하고, 프롬프트를 반복하는 작업이 필요합니다. 명령줄이나 Postman에서 이 작업을 수행하는 것은 느립니다.

여기서 Apidog를 사용해 볼 가치가 있습니다. 이는 요청 구축, 응답 검사 및 테스트 자동화를 한 곳에서 처리하는 무료 API 클라이언트입니다.

Apidog에서 Qwen 3.6 엔드포인트를 테스트하는 방법:

  1. https://openrouter.ai/api/v1/chat/completions으로 새로운 POST 요청을 생성합니다
  2. Authorization: Bearer sk-or-v1-... 헤더를 추가합니다
  3. 요청 본문을 modelmessages 필드가 포함된 JSON으로 설정합니다
  4. 요청을 보내고 응답을 검사합니다

이를 컬렉션으로 저장하고, 모델 ID 간을 전환하여 출력을 비교하고, 응답 구조를 확인하고, choices[0].message.content가 비어 있지 않은지 확인하거나, 도구 호출에 예상 함수 이름이 포함되어 있는지 주장하는 자동화된 테스트를 작성할 수 있습니다.

OpenRouter를 호출하는 앱을 구축 중이라면, 초기에 Apidog에서 몇 가지 요청 테스트를 작성하는 것이 모델이 예상치 않게 동작할 때 시간을 절약해 줍니다.

구축하기 전에 알아야 할 무료 계층 제한

Qwen 3.6은 현재 무료입니다. 이것이 무기한 지속되지는 않을 것이며, 계획해야 할 실질적인 제약이 있습니다.

요청 제한은 공유됩니다. OpenRouter의 무료 모델은 모든 사용자 간에 용량을 공유합니다. 피크 시간(일반적으로 미국 저녁 시간)에는 더 높은 지연 시간과 간헐적인 요청 제한 오류가 발생할 수 있습니다. 모든 프로덕션 코드에 재시도 로직을 구축하세요.

import time
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

session = requests.Session()
retry_strategy = Retry(
    total=3,
    backoff_factor=2,
    status_forcelist=[429, 500, 502, 503, 504],
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("https://", adapter)

response = session.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={"Authorization": "Bearer sk-or-v1-YOUR_KEY_HERE"},
    json={
        "model": "qwen/qwen3.6-plus-preview:free",
        "messages": [{"role": "user", "content": "Hello"}],
    },
    timeout=30,
)

데이터가 기록됩니다. OpenRouter의 모델 페이지에는 "모델이 모델 개선에 사용될 수 있는 프롬프트 및 완성 데이터를 수집한다"고 명시되어 있습니다. 이 엔드포인트를 통해 API 키, 비밀번호 또는 개인 식별 정보를 보내지 마십시오.

미리보기 상태. 이것은 미리보기 릴리스입니다. 모델의 동작이 변경될 수 있습니다. 프로덕션 추론에 사용하는 경우, 통합 테스트를 현재 모델 ID에 고정하고 회귀를 모니터링하십시오.

텍스트 전용. Qwen 3.6은 텍스트 입력을 받아 텍스트 출력을 생성합니다. 이미지, 오디오, 파일 업로드는 지원하지 않습니다.

실제 사용 사례

코드 검토 에이전트 구축. 내부 PR 검토 도구를 구축하는 팀은 전체 풀 리퀘스트 diff (때로는 10,000줄 이상)를 Qwen 3.6에 입력하여 논리 오류, 누락된 테스트 및 보안 문제에 대한 상세한 피드백을 얻었습니다. 100만 토큰 창 덕분에 청킹(chunking) 없이 이 작업이 가능했습니다.

프론트엔드 컴포넌트 생성. SaaS 대시보드를 구축하는 한 개발자는 Qwen 3.6을 사용하여 디자인 사양에서 React 컴포넌트를 생성했습니다. 모델은 여러 번의 수정 과정 없이 적절한 prop 타입과 반응형 CSS를 포함한 깔끔한 TypeScript 코드를 생성했습니다.

API 문서 요약. 타사 결제 API 간 마이그레이션하는 팀은 두 API의 전체 문서(각각 약 10만 토큰)를 한 번의 요청으로 전달하고 인증 방법, 웹훅 형식 및 요청 제한에 대한 비교표를 요청했습니다. 모델은 30초 이내에 구조화된 표를 반환했습니다.

openrouter.ai에서 가입하고, 키를 받아서, 현재 유료로 사용 중인 모델 대신 qwen/qwen3.6-plus-preview:free를 사용해 보세요.

자주 묻는 질문

Qwen 3.6은 정말 무료로 사용할 수 있나요?

네. 2026년 3월 현재, 이 모델은 OpenRouter에서 입력 토큰 100만 개당 $0, 출력 토큰 100만 개당 $0로 등재되어 있습니다. 미리보기 기간이 종료되면 무료 상태가 변경될 수 있으므로, 비용이 0으로 유지되는 것에 의존하는 것을 구축하기 전에 OpenRouter 가격 페이지를 확인하세요.

무료 계층의 요청 제한은 얼마인가요?

OpenRouter는 무료 계층 모델에 대한 정확한 요청 제한을 공개하지 않습니다. 실제로는 무료 모델은 용량을 공유하며 높은 트래픽 시에는 스로틀링될 수 있습니다. 동시성을 높이기 전에 한 번에 하나의 요청으로 시작하고 재시도 로직을 추가하세요.

Qwen 3.6을 상업적 프로젝트에 사용할 수 있나요?

네, OpenRouter는 상업적 사용을 허용합니다. 특히 결과물을 배포하는 경우, 기본 모델 자체에 대한 제한 사항은 Alibaba Cloud의 Qwen 모델 라이선스를 확인하십시오.

Qwen 3.6이 다른 모델보다 응답하는 데 더 오래 걸리는 이유는 무엇인가요?

필수적인 추론 토큰은 지연 시간을 추가합니다. 응답을 생성하기 전에 모델은 내부적인 사고 과정(chain-of-thought)을 거칩니다. 단순한 프롬프트의 경우 몇 초가 추가될 수 있습니다. 복잡한 추론 작업의 경우 추가 지연 시간은 그만한 가치가 있습니다. 생성되는 동안 부분적인 출력을 표시하려면 스트리밍을 사용하세요.

추론 토큰을 비활성화하는 방법이 있나요?

현재 미리보기 버전에서는 추론이 필수이며 끌 수 없습니다. 사고 과정(chain-of-thought) 없이 더 빠른 응답이 필요한 경우, 다른 모델 변형이 사용 가능해지면 시도하거나, 지연 시간에 민감한 작업에는 LLaMA 3.1 8B와 같은 더 작은 무료 모델을 사용해 보세요.

100만 토큰 컨텍스트 창이 비용에 어떤 영향을 미치나요?

무료 계층에서는 영향을 미치지 않습니다. 전송하는 토큰 수에 관계없이 $0를 지불합니다. 매우 큰 요청은 처리하는 데 더 오래 걸리고 무료 계층에서 시간 초과가 발생할 수 있다는 점을 명심하십시오. 30-60초의 시간 초과로 시작하여 10만 토큰 이상의 요청에 대해서는 이를 늘리십시오.

button

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요