
Gemini 3.5 Flash API 사용법: Model ID, 가격, 코드 예제

Gemini 3.5 Flash는 Google의 최신 프로덕션 준비 Flash 모델로, 정식 출시(GA)되어 대규모 프로덕션 환경에서 안정적으로 사용할 수 있습니다. 에이전트 워크플로, 코딩 에이전트, 서브 에이전트 배포, 장기 태스크를 위해 설계되었으며, 프론티어 수준의 지능과 Flash급 속도 및 비용 효율성을 겸비합니다.
이 가이드는 Gemini 3.5 Flash를 애플리케이션에 통합하는 데 필요한 모든 것을 다룹니다: Model ID, 가격, Python 및 Node.js 코드 예제, 함수 호출, 구조화된 출력, 에이전트 워크플로 패턴, 비용 분석, Flash와 Pro 중 선택하는 방법.
빠른 참조 카드
| 항목 | 값 |
|---|---|
| Model ID | gemini-3.5-flash |
| 상태 | 정식 출시(GA), 프로덕션 환경에서 안정적 |
| 입력 가격 | $1.50 / 100만 토큰 |
| 출력 가격 | $9.00 / 100만 토큰 |
| 컨텍스트 윈도우 | 1,048,576 입력 토큰 |
| 최대 출력 | 65,535 토큰 |
| 입력 모달리티 | 텍스트, 이미지, 비디오, 오디오, PDF |
| 출력 모달리티 | 텍스트만 |
| 함수 호출 | 지원 |
| 구조화된 출력 | 지원 |
| 코드 실행 | 지원 |
| 검색 그라운딩 | 지원 |
| 컨텍스트 캐싱 | 지원 |
| Batch API | 지원 |
| 스트리밍 | 지원 |
목차
- Gemini 3.5 Flash를 사용해야 하는 경우
- Gemini 3.5 Flash vs 다른 Gemini 모델
- 가격 상세 분석
- 설정: 2분 만에 시작하기
- 코드 예제
- 함수 호출
- 구조화된 출력
- 코딩 에이전트 워크플로
- 서브 에이전트 배포 패턴
- 비용 분석: 에이전트 루프의 실제 비용
- 비용 절감 전략
- 흔한 실수와 방지 방법
- Gemini 3.5 Flash를 사용하지 말아야 하는 경우
- 자주 묻는 질문
Gemini 3.5 Flash를 사용해야 하는 경우
Gemini 3.5 Flash는 범용 저가 모델이 아닙니다. Google은 속도, 반복당 비용, 도구 지원이 최대 추론 깊이보다 중요한 특정 고가치 워크로드에 명확히 포지셔닝합니다.
최적의 사용 사례
| 사용 사례 | Gemini 3.5 Flash가 적합한 이유 | 측정 지표 |
|---|---|---|
| 코딩 에이전트 | 반복당 Flash급 속도로 빠른 코드 생성, 디버깅, 리팩토링 | 수정까지의 반복 횟수, 세션당 비용, diff 품질 |
| 에이전트 워크플로 | 네이티브 함수 호출, 병렬 실행 루프, 낮은 호출당 비용 | 도구 호출 정확도, 폴백 비율, 전체 워크플로 비용 |
| 서브 에이전트 배포 | 호출당 경제성이 중요한 멀티 에이전트 시스템에서 서브 에이전트로 배포 | 서브 호출당 지연 시간, 오류율, 오케스트레이션 오버헤드 |
| 장기 태스크 | 1M 컨텍스트로 전체 코드베이스와 다중 문서 분석을 자르지 않고 처리 | 컨텍스트 활용률, 높은 토큰 수에서의 출력 품질 |
| 문서 처리 | PDF, 오디오, 비디오 입력이 통합 가격——모달리티 추가 요금 없음 | 추출 정확도, 문서당 처리 비용 |
| 프로덕션 채팅 | Flash 지연 시간에서 내장 추론으로 고객 대면 애플리케이션에 적합 | 첫 토큰까지의 시간, 사용자 만족도, 대화당 비용 |
사용 사례 결정 트리
다음 질문에 순서대로 답하세요:
- 이 작업이 가장 깊은 수준의 추론을 필요로 하나요? 그렇다면 → Gemini 3.1 Pro.
- 대량의 단순 작업(분류, 라우팅, 추출)인가요? 그렇다면 → Gemini 3.1 Flash Lite.
- 작업이 코딩, 에이전트, 도구, 긴 컨텍스트를 포함하나요? 그렇다면 → Gemini 3.5 Flash.
- 범용 프로덕션 채팅이나 요약인가요? 그렇다면 → Gemini 3.5 Flash 또는 Gemini 2.5 Flash (워크로드에 따라 비교).
Gemini 3.5 Flash vs 다른 Gemini 모델
프로덕션 라우팅 결정에 중요한 비교입니다.
| 특성 | Gemini 3.5 Flash | Gemini 3.1 Pro | Gemini 3 Flash | Gemini 3.1 Flash Lite | Gemini 2.5 Flash |
|---|---|---|---|---|---|
| 상태 | GA, 안정적 | 프리뷰 | 프리뷰 | 프리뷰 | 안정적 |
| 최적 용도 | 에이전트, 코딩, 장기 | 가장 어려운 추론 | 범용 빠른 워크로드 | 대량 배치 | 프로덕션 채팅 |
| 입력 비용 | $1.50/MTok | $2–$4/MTok | $0.50/MTok | $0.25/MTok | $0.30/MTok |
| 출력 비용 | $9.00/MTok | $12–$18/MTok | $3.00/MTok | $1.50/MTok | $2.50/MTok |
| 컨텍스트 | 1M / 65K | 1M / 64K | 1M / 64K | 1M / 64K | 1M / 64K |
| 추론 | 내장 | 최고 수준(thinking) | 표준 | 경량 | 표준 |
| 함수 호출 | 예 | 예 | 예 | 예 | 예 |
| 코드 실행 | 예 | 예 | 예 | 예 | 예 |
| 프로덕션 준비도 | GA | 프리뷰 | 프리뷰 | 프리뷰 | 안정적 |
가격 상세 분석
표준 가격
| 토큰 유형 | 100만 토큰당 가격 |
|---|---|
| 텍스트 입력 | $1.50 |
| 텍스트 출력 | $9.00 |
| 오디오 입력 | 텍스트와 통합(추가 요금 없음) |
| 이미지 입력 | 텍스트와 통합(추가 요금 없음) |
| 비디오 입력 | 텍스트와 통합(추가 요금 없음) |
| PDF 입력 | 텍스트와 통합(추가 요금 없음) |
비용 절감 옵션
| 방법 | 작동 방식 | 최적 용도 |
|---|---|---|
| 컨텍스트 캐싱 | 반복되는 입력 프리픽스를 캐시; 캐시 히트 시 새 입력보다 저렴 | 에이전트 루프, 반복 코드 컨텍스트, 시스템 프롬프트 |
| Batch API | 할인된 요금으로 오프라인 처리를 위해 배치로 요청 제출 | 테스트 생성, 대량 추출, 오프라인 분석 |
| EvoLink 크레딧 | 볼륨 할인을 위해 크레딧을 사전 구매 | 월간 사용량이 예측 가능한 팀 |
실제 비용 예시
| 시나리오 | 입력 토큰 | 출력 토큰 | 추정 비용 |
|---|---|---|---|
| 단일 텍스트 질문 | ~500 | ~200 | $0.003 |
| 코드 리뷰 (1 파일, ~2K 줄) | ~8,000 | ~2,000 | $0.03 |
| 코딩 에이전트 세션 (20회 반복) | ~80,000 | ~20,000 | $0.30 |
| 전체 코드베이스 분석 (500K 컨텍스트) | ~500,000 | ~10,000 | $0.84 |
| PDF 문서 추출 (100 페이지) | ~150,000 | ~5,000 | $0.27 |
| 8시간 에이전트 배포 (연속) | ~2,000,000 | ~500,000 | $7.50 |
이 추정치는 캐싱 없는 표준 가격을 기준으로 합니다. 컨텍스트 캐싱을 활성화하면 에이전트 루프의 입력 비용을 크게 절감할 수 있습니다.
설정: 2분 만에 시작하기
1단계: EvoLink API 키 받기
2단계: OpenAI SDK 설치
EvoLink는 OpenAI 호환이므로 표준 OpenAI SDK를 사용합니다:
pip install openainpm install openai3단계: 첫 번째 요청 보내기
from openai import OpenAI
client = OpenAI(
api_key="your-evolink-api-key",
base_url="https://api.evolink.ai/v1"
)
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "user", "content": "What is Gemini 3.5 Flash best at?"}
]
)
print(response.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-evolink-api-key",
baseURL: "https://api.evolink.ai/v1",
});
const response = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [
{ role: "user", content: "What is Gemini 3.5 Flash best at?" },
],
});
console.log(response.choices[0].message.content);이것으로 끝입니다. Google 전용 SDK 불필요, 별도의 인증 흐름 불필요, Vertex AI 설정 불필요.
코드 예제
시스템 프롬프트가 있는 기본 텍스트 요청
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "You are a senior software engineer. Be concise and precise."},
{"role": "user", "content": "Explain the difference between a mutex and a semaphore in 3 sentences."}
],
temperature=0.3,
max_tokens=512
)멀티모달: 이미지 분석
import base64
with open("screenshot.png", "rb") as f:
image_data = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What error is shown in this screenshot? Suggest a fix."},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_data}"}}
]
}
]
)모든 멀티모달 입력은 텍스트와 동일한 토큰당 가격을 공유합니다——오디오나 비디오 추가 요금이 없습니다.
스트리밍
토큰이 생성되는 대로 표시하려는 대화형 애플리케이션용:
stream = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[{"role": "user", "content": "Write a Python function that validates email addresses."}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)const stream = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "Write a Python function that validates email addresses." }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}멀티턴 대화
messages = [
{"role": "system", "content": "You are a helpful coding assistant."},
{"role": "user", "content": "Write a linked list implementation in Python."},
]
# First turn
response = client.chat.completions.create(model="gemini-3.5-flash", messages=messages)
assistant_message = response.choices[0].message.content
messages.append({"role": "assistant", "content": assistant_message})
# Follow-up
messages.append({"role": "user", "content": "Now add a reverse() method."})
response = client.chat.completions.create(model="gemini-3.5-flash", messages=messages)
print(response.choices[0].message.content)함수 호출
Gemini 3.5 Flash는 네이티브 함수 호출을 지원하며, 이는 에이전트 워크플로에 필수적입니다. 도구를 정의하고 모델이 언제 호출할지 결정하게 하세요.
Python 예제
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
},
{
"type": "function",
"function": {
"name": "search_database",
"description": "Search the internal knowledge base",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query"},
"limit": {"type": "integer", "description": "Max results to return"}
},
"required": ["query"]
}
}
}
]
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[{"role": "user", "content": "What's the weather in Tokyo and find articles about climate change?"}],
tools=tools,
tool_choice="auto"
)
# The model may call one or both tools
for tool_call in response.choices[0].message.tool_calls:
print(f"Function: {tool_call.function.name}")
print(f"Arguments: {tool_call.function.arguments}")Node.js 예제
const tools = [
{
type: "function",
function: {
name: "run_tests",
description: "Run the test suite and return results",
parameters: {
type: "object",
properties: {
test_file: { type: "string", description: "Path to test file" },
verbose: { type: "boolean", description: "Show detailed output" },
},
required: ["test_file"],
},
},
},
];
const response = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "Run the tests for auth module" }],
tools,
tool_choice: "auto",
});
const toolCalls = response.choices[0].message.tool_calls;
for (const call of toolCalls) {
console.log(`Call: ${call.function.name}(${call.function.arguments})`);
}함수 호출 모범 사례
| 사례 | 이유 |
|---|---|
| 명확한 함수 설명 작성 | 모델은 설명에 의존하여 각 도구를 언제 호출할지 결정 |
required 필드 사용 | 모델이 중요한 매개변수를 생략하는 것을 방지 |
| 매개변수 스키마를 단순하게 유지 | 복잡한 중첩 스키마는 오류율을 증가 |
| 병렬 도구 호출 처리 | Gemini 3.5 Flash는 한 번의 응답에서 여러 도구를 호출 가능 |
| 도구 호출 인수 검증 | 실행 전에 항상 검증——모델 출력을 맹목적으로 신뢰하지 않기 |
구조화된 출력
기계 판독 가능한 결과가 필요한 워크플로에는 JSON 모드 또는 응답 형식을 사용하세요:
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "Extract structured data from the text. Return valid JSON only."},
{"role": "user", "content": "John Smith, age 34, works at Acme Corp as a senior engineer since 2022. Email: [email protected]"}
],
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)
print(data)
# {"name": "John Smith", "age": 34, "company": "Acme Corp", "role": "senior engineer", "start_year": 2022, "email": "[email protected]"}구조화된 출력을 사용해야 하는 경우
| 시나리오 | 형식 | 이유 |
|---|---|---|
| 문서에서 데이터 추출 | JSON 모드 | 다운스트림 시스템이 구조화된 데이터를 필요로 함 |
| 에이전트 도구 응답 | JSON 모드 | 도구 오케스트레이터가 파싱 가능한 출력을 필요로 함 |
| 분류 작업 | JSON 모드 | 자유 텍스트가 아닌 일관된 레이블 필드가 필요 |
| 코드 생성 | 일반 텍스트 | 코드는 이미 구조화되어 있음; JSON 래핑은 오버헤드 추가 |
| 설명 및 채팅 | 일반 텍스트 | 자연어는 JSON 없이 더 잘 읽힘 |
코딩 에이전트 워크플로
이것은 Gemini 3.5 Flash의 가장 높은 가치의 사용 사례입니다. 완전한 코딩 에이전트 루프를 아래에 소개합니다:
from openai import OpenAI
import subprocess
import json
client = OpenAI(api_key="your-evolink-api-key", base_url="https://api.evolink.ai/v1")
def run_tests(test_file: str) -> dict:
"""Run tests and return results."""
result = subprocess.run(["python", "-m", "pytest", test_file, "-v", "--tb=short"],
capture_output=True, text=True, timeout=60)
return {"passed": result.returncode == 0, "output": result.stdout + result.stderr}
def read_file(path: str) -> str:
with open(path) as f:
return f.read()
def write_file(path: str, content: str):
with open(path, "w") as f:
f.write(content)
# Initial context
module_code = read_file("src/auth.py")
test_code = read_file("tests/test_auth.py")
test_result = run_tests("tests/test_auth.py")
messages = [
{"role": "system", "content": """You are a coding agent. Your job is to fix failing tests.
Rules:
1. Read the code and test output carefully.
2. Identify the root cause.
3. Output the complete fixed file content.
4. Do not change test expectations — fix the implementation."""},
{"role": "user", "content": f"""Module code:\n```python\n{module_code}\n```\n\nTest code:\n```python\n{test_code}\n```\n\nTest output:\n```\n{test_result['output']}\n```"""}
]
MAX_ITERATIONS = 15
for i in range(MAX_ITERATIONS):
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=messages,
temperature=0.2,
max_tokens=8192
)
reply = response.choices[0].message.content
messages.append({"role": "assistant", "content": reply})
# Extract and apply the fix
if "```python" in reply:
code_block = reply.split("```python")[1].split("```")[0]
write_file("src/auth.py", code_block)
# Re-run tests
test_result = run_tests("tests/test_auth.py")
if test_result["passed"]:
print(f"All tests pass after {i + 1} iterations.")
break
messages.append({"role": "user", "content": f"Tests still failing:\n```\n{test_result['output']}\n```\nAnalyze the failure and try again."})
else:
print(f"Failed to fix after {MAX_ITERATIONS} iterations.")에이전트 루프 성능 팁
| 팁 | 효과 |
|---|---|
결정론적 수정을 위해 temperature=0.2 사용 | 반복 간 랜덤 변동 감소 |
코드 출력에 max_tokens=8192 설정 | 큰 파일에서 잘림 방지 |
| 컨텍스트에 테스트 출력 포함 | 모델에 구체적인 실패 신호 제공 |
| 반복 횟수 제한 (15–20) | 모델이 막힌 경우 비용 폭주 방지 |
| 컨텍스트 캐싱 사용 | 매 반복마다 동일한 코드 컨텍스트 전송——캐시 히트로 입력 비용을 크게 절감 가능 |
서브 에이전트 배포 패턴
멀티 에이전트 시스템에서 Gemini 3.5 Flash는 코디네이터(Pro 또는 다른 모델)가 전체 워크플로를 관리하는 동안 특정 작업을 처리하는 서브 에이전트로 잘 작동합니다:
def coding_sub_agent(task: str, context: str) -> str:
"""Fast coding sub-agent using Gemini 3.5 Flash."""
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "You are a fast coding sub-agent. Complete the task concisely."},
{"role": "user", "content": f"Context:\n{context}\n\nTask:\n{task}"}
],
temperature=0.2,
max_tokens=4096
)
return response.choices[0].message.content
def reasoning_agent(task: str) -> str:
"""Deep reasoning agent using Gemini 3.1 Pro for complex decisions."""
response = client.chat.completions.create(
model="gemini-3.1-pro-preview",
messages=[
{"role": "system", "content": "You are a senior architect. Analyze deeply and decide."},
{"role": "user", "content": task}
],
temperature=0.3,
max_tokens=4096
)
return response.choices[0].message.content
# Coordinator pattern: Pro decides, Flash executes
plan = reasoning_agent("Design a refactoring plan for the auth module to support OAuth2.")
subtasks = parse_subtasks(plan)
results = []
for subtask in subtasks:
result = coding_sub_agent(subtask, context=module_code)
results.append(result)멀티 에이전트 시스템에서 역할별 모델 선택
| 에이전트 역할 | 추천 모델 | 이유 |
|---|---|---|
| 코디네이터 / 플래너 | Gemini 3.1 Pro | 아키텍처 결정에 가장 깊은 추론이 필요 |
| 코딩 서브 에이전트 | Gemini 3.5 Flash | 빠른 반복, 좋은 코드 품질, 낮은 호출당 비용 |
| 분류 / 라우팅 | Gemini 3.1 Flash Lite | 단순 구조화 결정에 가장 저렴한 옵션 |
| 문서 분석 | Gemini 3.5 Flash | 1M 컨텍스트 + 멀티모달로 PDF와 이미지 처리 |
| 검증 / 리뷰 | Gemini 3.5 Flash 또는 Pro | 리뷰의 중요도에 따라 결정 |
비용 분석: 에이전트 루프의 실제 비용
대부분의 개발자는 단일 요청 가격만 보기 때문에 에이전트 비용을 과소평가합니다. 현실적인 분석을 보여드립니다:
코딩 에이전트: 20회 반복 디버그 세션
| 단계 | 입력 토큰 | 출력 토큰 | 입력 비용 | 출력 비용 |
|---|---|---|---|---|
| 반복 1 (전체 컨텍스트) | 8,000 | 2,000 | $0.012 | $0.018 |
| 반복 2–5 (컨텍스트 증가) | 40,000 | 6,000 | $0.060 | $0.054 |
| 반복 6–10 (큰 컨텍스트) | 60,000 | 5,000 | $0.090 | $0.045 |
| 반복 11–20 (안정화) | 100,000 | 7,000 | $0.150 | $0.063 |
| 합계 | 208,000 | 20,000 | $0.312 | $0.180 |
| 세션 총계 | $0.49 |
컨텍스트 캐싱 사용 시 (반복 코드 컨텍스트의 캐시 히트율 50% 가정):
| 캐싱 없음 | 캐싱 사용 | 절약 | |
|---|---|---|---|
| 입력 비용 | $0.312 | ~$0.187 | 40% |
| 출력 비용 | $0.180 | $0.180 | 0% |
| 합계 | $0.492 | $0.367 | 25% |
비용 비교: 동일한 에이전트 세션의 모델별 비교
| 모델 | 입력 비용 | 출력 비용 | 세션 총계 | 품질 트레이드오프 |
|---|---|---|---|---|
| Gemini 3.5 Flash | $0.312 | $0.180 | $0.49 | 코딩 에이전트의 최적 균형 |
| Gemini 3.1 Pro | $0.416–$0.832 | $0.240–$0.360 | $0.66–$1.19 | 더 깊은 추론, 2–3배 비용 |
| Gemini 3 Flash | $0.104 | $0.060 | $0.16 | 더 저렴하지만 코딩 능력 약함 |
| Gemini 3.1 Flash Lite | $0.052 | $0.030 | $0.08 | 가장 저렴하지만 추론 능력 제한적 |
비용 절감 전략
1. 컨텍스트 캐싱 활성화
에이전트가 동일한 코드 컨텍스트를 반복 전송하는 경우, 컨텍스트 캐싱은 캐시 히트 시 입력 비용을 크게 절감할 수 있습니다.
2. 긴급하지 않은 작업에 Batch API 사용
테스트 생성, 대량 추출 또는 오프라인 코드 분석에 Batch API가 할인을 제공합니다. 지연 시간은 더 높지만 토큰당 비용은 더 낮습니다.
3. Max Tokens 설정
max_tokens를 설정하세요:response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=messages,
max_tokens=4096 # Reasonable limit for code output
)4. 작업 복잡도에 따라 라우팅
모든 것에 하나의 모델을 사용하지 마세요. 라우팅 레이어를 구축하세요:
def route_request(task_type: str) -> str:
routing_table = {
"architecture": "gemini-3.1-pro-preview", # Deep reasoning
"coding": "gemini-3.5-flash", # Fast iteration
"classification": "gemini-3.1-flash-lite", # Cheapest
"review": "gemini-3.5-flash", # Good balance
"chat": "gemini-3.5-flash", # Production default
}
return routing_table.get(task_type, "gemini-3.5-flash")5. 토큰 사용량 모니터링
요청별 입력 및 출력 토큰을 추적하세요. EvoLink 대시보드는 실시간 사용량 가시성을 제공합니다. 사용량을 정기적으로 확인하고 필요에 따라 애플리케이션 측에서 예산 한도를 설정하세요.
6. 가능할 때 컨텍스트 잘라내기
마지막 50K 토큰만 필요하다면 전체 1M 토큰 컨텍스트를 보내지 마세요. 오래된 대화 턴을 제거하고 관련 컨텍스트만 유지하세요.
흔한 실수와 방지 방법
| 실수 | 결과 | 해결 방법 |
|---|---|---|
| 모든 곳에 Model ID 하드코딩 | 코드 변경 없이 모델을 전환할 수 없음 | Model ID를 설정에 저장; 작업 유형별로 라우팅 |
max_tokens를 설정하지 않음 | 출력이 예상치 못하게 길고 비쌀 수 있음 | 항상 합리적인 출력 제한을 설정 |
| 캐싱 없이 매 반복마다 전체 컨텍스트 전송 | 입력 비용이 반복에 비례하여 선형 증가 | 반복 프리픽스에 대해 컨텍스트 캐싱 활성화 |
| 깊은 추론이 필요한 작업에 Flash 사용 | 복잡한 아키텍처 결정에서 정확도 저하 | 가장 어려운 단계는 Gemini 3.1 Pro로 라우팅 |
| Flash로 충분한 작업에 Pro 사용 | 2–3배 높은 비용에 품질 향상은 미미 | 기본은 Flash; 필요할 때만 Pro로 업그레이드 |
| 예산 추정에서 재시도 비용 무시 | 실제 비용이 단일 요청 추정보다 높음 | 재시도율과 폴백 비용을 계산에 포함 |
| 함수 호출 인수를 검증하지 않음 | 모델이 유효하지 않은 매개변수를 출력 | 실행 전에 항상 도구 호출 인수를 검증 |
| 컨텍스트 윈도우를 무한으로 취급 | 1M 토큰은 크지만 무한은 아님 | 컨텍스트 사용량 모니터링; 한계에 가까워지면 잘라내기 |
Gemini 3.5 Flash를 사용하지 말아야 하는 경우
Gemini 3.5 Flash는 강력하지만 만능은 아닙니다. 다음 경우에는 다른 것을 사용하세요:
| 시나리오 | Flash가 적합하지 않은 이유 | 더 나은 선택 |
|---|---|---|
| 이미지/오디오/비디오 생성 | Flash는 텍스트 출력만 가능 | 전문 생성 모델 |
| 가장 어려운 다단계 추론 | Pro가 더 깊은 추론 트레이스를 제공 | Gemini 3.1 Pro |
| 최저 비용 대량 추출 | Flash Lite는 입력이 6배 저렴 | Gemini 3.1 Flash Lite |
| 실시간 음성 대화 | Flash는 Live API를 지원하지 않음 | Live API가 있는 Gemini 모델 |
| Computer Use | Computer Use 미지원 | Computer Use 지원 모델 |
자주 묻는 질문
Gemini 3.5 Flash의 Model ID는 무엇인가요?
gemini-3.5-flash입니다. EvoLink를 통한 API 요청에서 이 정확한 문자열을 사용하세요.Gemini 3.5 Flash는 무료인가요?
Gemini 3.5 Flash는 Google Gemini API에서 무료 티어를 제공합니다. 유료 표준 가격은 입력 100만 토큰당 $1.50, 출력 100만 토큰당 $9.00입니다. 컨텍스트 캐싱과 Batch API는 할인된 요금을 제공합니다. EvoLink 가격은 제품 페이지를 확인하세요.
OpenAI SDK로 Gemini 3.5 Flash를 사용할 수 있나요?
https://api.evolink.ai/v1로 지정하고 model="gemini-3.5-flash"로 설정하세요. Python, Node.js, Go 및 기타 OpenAI 호환 클라이언트에서 작동합니다.Gemini 3.5 Flash는 함수 호출을 지원하나요?
네. 함수 호출, 구조화된 출력, 코드 실행, 검색 그라운딩이 모두 네이티브로 지원됩니다. 도구를 정의하면 모델이 적절한 시점에 호출합니다.
Gemini 3.5 Flash는 Gemini 3 Flash와 어떻게 다른가요?
Gemini 3.5 Flash는 프론티어 수준의 지능, 더 강력한 에이전트 및 코딩 성능, 내장 추론을 갖춘 현세대 Flash 모델입니다. Gemini 3 Flash는 이전 세대로 능력은 낮지만 비용도 더 낮습니다(입력 $0.50 vs $1.50/MTok).
컨텍스트 윈도우는 얼마나 큰가요?
입력 1,048,576 토큰, 출력 65,535 토큰입니다. 전체 코드베이스, 다중 문서 분석, 긴 에이전트 대화 기록에 충분한 크기입니다.
Gemini 3.5 Flash는 코딩 에이전트에 적합한가요?
네. Google이 코딩 작업과 에이전트 워크플로에 대해 명시적으로 최적화했습니다. 코드 생성, 디버깅, 리팩토링, 다중 파일 분석을 Flash급 속도로 처리합니다. 일반적인 20회 반복 디버그 세션의 비용은 약 $0.30–$0.50입니다.
Gemini 3.5 Flash는 프로덕션에 사용할 수 있나요?
네. Google은 정식 출시(GA)로 등재하며 대규모 프로덕션 사용에 안정적입니다. 프리뷰나 실험적 모델이 아닙니다.
코딩 에이전트 세션의 비용은 얼마인가요?
약 200K 총 입력 토큰과 약 20K 출력 토큰을 사용하는 일반적인 20회 반복 디버그 세션은 표준 가격으로 약 $0.49, 컨텍스트 캐싱 활성화 시 약 $0.37입니다.
코드 변경 없이 Gemini 모델을 전환할 수 있나요?
model 매개변수를 "gemini-3.5-flash"에서 "gemini-3.1-pro" 또는 "gemini-3.1-flash-lite"로 변경하기만 하면 됩니다——다른 변경은 필요 없습니다.Gemini 3.5 Flash는 구조화된 JSON 출력을 지원하나요?
response_format={"type": "json_object"}를 사용하여 구조화된 JSON 응답을 받을 수 있습니다. 데이터 추출, 분류, 도구 오케스트레이션에 유용합니다.다음 단계
- Gemini 3.5 Flash API — 전체 제품 페이지 — 실시간 가격, 상태, 모델 세부 정보
- 모든 Gemini 모델 비교 — 7개 Gemini 경로의 나란히 비교
- Gemini 3.5 Flash 릴리스 노트 — 프리뷰에서 GA로의 변경 사항
- EvoLink API 문서 — 전체 API 레퍼런스 및 통합 가이드
- API 키 생성 — 2분 만에 구축 시작


