6월 1일자로 gemini-2.0-flash가 종료됐습니다. 아직 코드베이스에 이 모델 ID가 박혀 있다면 지금 API 호출이 404를 뱉고 있습니다.
핵심 요약 → gemini-2.0-flash-001, gemini-2.0-flash-lite-001 2026년 6월 1일 완전 종료 → 별도 fallback 없음 — 여전히 해당 모델 ID 사용 중이면 현재 API 호출 실패 → 직접 교체 대상: gemini-2.5-flash (성능 우선) 또는 gemini-2.5-flash-lite (비용 우선) → 점프 마이그레이션 옵션: gemini-3.5-flash — 5월 19일 GA 출시, 코딩·에이전틱 최강 → gemini-2.5-flash도 2026년 10월 16일 종료 예정 — 지금 2.5로 가면 4.5개월 뒤 또 마이그레이션 → 비용 주의: gemini-2.5-flash thinking 토큰 미설정 시 실제 비용 2~3배 폭증 → gemini-3.5-flash 기본 thinking_level: medium — 이전 모델에서 이전 시 명시 설정 필수 → gemini-3.5-flash TTFT(첫 토큰 시간) 기본값 17~19초 — 실시간 UX엔 thinking_budget: 0 필수 → Imagen 모델도 6월 24일 종료 예정 — Gemini Image 모델로 동시 마이그레이션 필요 → Gemini API 과금 체계도 변경됨 — 4월부터 prepaid 방식, Tier 1($250), Tier 2($2,000) 월 한도
실전 1: 지금 무슨 일이 벌어지고 있나 — 종료 타임라인 전체
Google은 2026년 2월 18일 Gemini 2.0 Flash 계열 전체에 deprecated 공지를 냈습니다. 이미 종료된 것들과 앞으로 종료될 것들을 한 번에 정리합니다.
모델 ID 종료일 상태
| gemini-1.0-pro 계열 전체 | 이미 종료 | ❌ 404 반환 |
| gemini-1.5-flash, gemini-1.5-pro | 이미 종료 | ❌ 404 반환 |
| gemini-3-pro-preview | 2026년 3월 9일 | ❌ 이미 종료 |
| gemini-2.0-flash-001 | 2026년 6월 1일 | ❌ 현재 종료 |
| gemini-2.0-flash-lite-001 | 2026년 6월 1일 | ❌ 현재 종료 |
| gemini-3.1-flash-lite-preview | 종료 완료 | ❌ 종료 |
| gemini-2.5-flash | 2026년 10월 16일 | ⚠️ 4.5개월 남음 |
| gemini-3.1-flash-image-preview | 2026년 6월 25일 | ⚠️ D-17 |
| gemini-3-pro-image-preview | 2026년 6월 25일 | ⚠️ D-17 |
| Imagen 계열 전체 | 2026년 6월 24일 | ⚠️ D-16 |
중요한 것은 자동 fallback이 없다는 점입니다. gemini-2.0-flash를 하드코딩한 코드는 6월 1일 이후 아무 경고 없이 API 오류를 반환합니다. alias(gemini-2.0-flash — 버전 번호 없는 것)도 동일하게 종료됐습니다.
실전 2: 마이그레이션 경로 3가지 — 뭘 골라야 하나
gemini-2.0-flash에서 이동할 수 있는 경로는 세 가지입니다. 상황에 따라 선택이 달라집니다.
경로 1 — gemini-2.5-flash-lite (비용 최우선)
gemini-2.0-flash를 쓰던 팀 중 비용이 최우선이라면 이게 맞는 경로입니다.
gemini-2.5-flash-lite는 gemini-2.0-flash와 토큰당 가격이 동일합니다($0.10/$0.40 per M). 그러면서 출력 토큰 한도가 8배 늘었습니다. 분류, 추출, 단순 요약처럼 복잡한 추론이 필요 없는 작업은 여기가 최적입니다.
# Before
model = genai.GenerativeModel("gemini-2.0-flash")
# After (비용 유지)
model = genai.GenerativeModel("gemini-2.5-flash-lite")
단, gemini-2.5-flash-lite도 2026년 10월 16일에 종료됩니다. 지금 마이그레이션하면 4.5개월 뒤 한 번 더 해야 합니다.
경로 2 — gemini-2.5-flash (성능·비용 균형)
복잡한 추론이 필요하거나 품질을 높이고 싶은 팀의 기본 선택지입니다.
가격은 $0.30/$2.50 per M으로 gemini-2.0-flash 대비 입력 3배, 출력 6.25배 비쌉니다. 그런데 여기서 절대 놓치면 안 되는 함정이 있습니다.
gemini-2.5-flash는 기본적으로 thinking 모드가 활성화돼 있습니다. thinking 토큰은 출력 요금($2.50/M)으로 과금됩니다. 설정을 안 하면 실제 비용이 공시 가격의 2~3배가 될 수 있습니다.
# thinking 비활성화 — 비용 통제 필수
response = model.generate_content(
prompt,
generation_config=genai.GenerationConfig(
thinking_config={"thinking_budget": 0} # 반드시 명시
)
)
이 모델도 2026년 10월 16일 종료 예정입니다.
경로 3 — gemini-3.5-flash (점프 마이그레이션, 권장)
한 번만 마이그레이션하고 싶은 팀, 또는 에이전틱·코딩 작업이 많은 팀에게 권장합니다.
gemini-3.5-flash는 2026년 5월 19일 GA 출시됐고 현재 종료 일정이 공지되지 않았습니다. 지금 2.5로 가면 10월에 또 해야 하지만, 3.5로 점프하면 당분간 추가 마이그레이션 없이 사용할 수 있습니다.
성능도 다릅니다. Gemini 3.5 Flash는 코딩과 에이전틱 벤치마크에서 Gemini 3.1 Pro를 넘어섰습니다. Terminal-Bench 2.1 76.2%, MCP Atlas 83.6% — Flash 티어 모델이 이전 세대 Pro를 능가하는 첫 사례입니다.
가격은 $1.50/$9.00 per M으로 2.0 Flash 대비 비쌉니다. 단 thinking_level 설정에 따라 실제 비용이 크게 달라집니다.
모델 입력 (/M) 출력 (/M) 종료일 추천 상황
| gemini-2.0-flash | $0.10 | $0.40 | ❌ 종료 | — |
| gemini-2.5-flash-lite | $0.10 | $0.40 | 2026.10.16 | 단순 작업, 비용 최우선 |
| gemini-2.5-flash | $0.30 | $2.50 | 2026.10.16 | 범용, thinking 비활성화 시 |
| gemini-3.5-flash | $1.50 | $9.00 | 미정 | 에이전틱·코딩, 장기 운영 |
실전 3: 실제 코드 마이그레이션 — Python SDK 기준 완전 가이드
SDK 패키지 확인
먼저 SDK 버전을 확인합니다. 구버전 SDK는 새 모델 ID를 지원하지 않을 수 있습니다.
# 현재 설치된 버전 확인
pip show google-generativeai
# 최신 버전으로 업그레이드
pip install --upgrade google-generativeai
# 또는 새 SDK 사용 (권장)
pip install google-genai
기본 마이그레이션 — 모델 ID 교체
대부분의 경우 모델 ID 교체만으로 마이그레이션이 완료됩니다.
import google.generativeai as genai
# ❌ 종료된 모델
model = genai.GenerativeModel("gemini-2.0-flash")
model = genai.GenerativeModel("gemini-2.0-flash-001")
model = genai.GenerativeModel("gemini-2.0-flash-lite")
# ✅ 비용 유지 (단순 작업)
model = genai.GenerativeModel("gemini-2.5-flash-lite")
# ✅ 성능·비용 균형 (thinking 반드시 비활성화)
model = genai.GenerativeModel(
"gemini-2.5-flash",
generation_config=genai.GenerationConfig(
thinking_config={"thinking_budget": 0}
)
)
# ✅ 점프 마이그레이션 (에이전틱·코딩)
model = genai.GenerativeModel("gemini-3.5-flash")
Gemini 3.5 Flash thinking_level 명시 설정
gemini-3.5-flash로 마이그레이션할 때 가장 많이 놓치는 부분입니다. 이전 모델들의 기본 thinking 수준과 다르게 설정돼 있어서 명시하지 않으면 예상과 다른 품질과 비용이 나옵니다.
from google import genai
from google.genai import types
client = genai.Client()
# ✅ 실시간 UX — thinking 비활성화 (TTFT 17~19초 → 즉각 응답)
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="사용자 질문",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
thinking_budget=0 # thinking 완전 비활성화
)
)
)
# ✅ 복잡한 추론 작업 — thinking 활성화
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="복잡한 코드 리뷰 요청",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
thinking_budget=8192 # 예산 명시
)
)
)
# ✅ 에이전틱 파이프라인 — thinking_level로 제어
response = client.models.generate_content(
model="gemini-3.5-flash",
contents=prompt,
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
thinking_level="medium" # minimal | low | medium | high
)
)
)
환경변수로 모델 ID 추상화 — 향후 마이그레이션 대비
이번 deprecated 사태로 배운 교훈은 모델 ID를 코드에 하드코딩하면 매번 코드를 수정해야 한다는 것입니다. 환경변수로 분리하면 다음 마이그레이션 때 코드 수정 없이 설정 변경만으로 대응할 수 있습니다.
import os
import google.generativeai as genai
# 환경변수로 분리
GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-3.5-flash")
GEMINI_FALLBACK_MODEL = os.getenv("GEMINI_FALLBACK_MODEL", "gemini-2.5-flash")
def get_model(use_fallback=False):
model_id = GEMINI_FALLBACK_MODEL if use_fallback else GEMINI_MODEL
return genai.GenerativeModel(model_id)
# .env 파일
# GEMINI_MODEL=gemini-3.5-flash
# GEMINI_FALLBACK_MODEL=gemini-2.5-flash-lite
실전 4: 비용 함정 — thinking 토큰이 청구서를 폭탄으로 만드는 방법
이번 마이그레이션에서 가장 많은 팀이 당하는 함정입니다. 단순히 모델 ID만 바꿨다가 다음 달 청구서를 보고 당황하는 경우입니다.
문제 구조
gemini-2.5-flash와 gemini-3.5-flash는 기본적으로 thinking 모드가 활성화돼 있습니다. Thinking 토큰은 사용자에게 보이지 않지만 내부적으로 생성되며, 출력 토큰 요금으로 과금됩니다.
예를 들어 gemini-2.5-flash($2.50/M output)로 단순 분류 작업을 1,000만 회 돌리면, thinking 없이는 $25지만 thinking이 응답당 500토큰씩 발생하면 $37.5로 50% 초과됩니다. 복잡한 프롬프트에서는 2~3배까지 치솟을 수 있습니다.
실제 비용 추정 코드
def estimate_monthly_cost(
requests_per_day: int,
avg_input_tokens: int,
avg_output_tokens: int,
model: str = "gemini-3.5-flash",
thinking_tokens_per_request: int = 0
):
pricing = {
"gemini-2.5-flash-lite": {"input": 0.10, "output": 0.40},
"gemini-2.5-flash": {"input": 0.30, "output": 2.50},
"gemini-3.5-flash": {"input": 1.50, "output": 9.00},
}
p = pricing[model]
monthly_requests = requests_per_day * 30
input_cost = (monthly_requests * avg_input_tokens / 1_000_000) * p["input"]
output_cost = (monthly_requests * (avg_output_tokens + thinking_tokens_per_request) / 1_000_000) * p["output"]
return {
"monthly_cost_usd": round(input_cost + output_cost, 2),
"input_cost": round(input_cost, 2),
"output_cost": round(output_cost, 2)
}
# 사용 예시
print(estimate_monthly_cost(
requests_per_day=10000,
avg_input_tokens=500,
avg_output_tokens=200,
model="gemini-2.5-flash",
thinking_tokens_per_request=500 # thinking 활성화 시
))
# {'monthly_cost_usd': 157.5, 'input_cost': 45.0, 'output_cost': 112.5}
print(estimate_monthly_cost(
requests_per_day=10000,
avg_input_tokens=500,
avg_output_tokens=200,
model="gemini-2.5-flash",
thinking_tokens_per_request=0 # thinking 비활성화
))
# {'monthly_cost_usd': 60.0, 'input_cost': 45.0, 'output_cost': 15.0}
실전 5: Imagen 모델도 6월 24일 종료 — 동시 대응 필요
Gemini 2.0 Flash와 함께 Imagen 계열도 6월 24일 종료됩니다. 이미지 생성 기능을 사용 중이라면 함께 대응해야 합니다.
# ❌ 종료 예정 (6월 24일)
model = "imagen-3.0-generate-001"
model = "imagen-3.0-fast-generate-001"
# ✅ 대체 모델 — Gemini Image 계열 ("Nano Banana" 모델)
# Firebase AI Logic 기준
model = "gemini-3.1-flash-image" # 일반 이미지 생성
model = "gemini-3.1-flash-image-lite" # 경량 버전
실전 6: 마이그레이션 체크리스트
마이그레이션 전에 확인해야 할 항목들입니다.
□ 코드베이스 전체에서 gemini-2.0-flash 문자열 검색
grep -r "gemini-2.0-flash" . --include="*.py" --include="*.js" --include="*.ts"
□ 환경변수 파일(.env, config.yaml 등)에서 모델 ID 확인
□ CI/CD 파이프라인 설정 파일에서 모델 ID 확인
□ 마이그레이션 대상 모델 선정 (워크로드 유형별로 다름)
- 단순 분류·추출: gemini-2.5-flash-lite
- 범용 생성: gemini-2.5-flash (thinking_budget: 0 설정)
- 에이전틱·코딩: gemini-3.5-flash
□ thinking 설정 명시 여부 확인 (2.5/3.5 Flash 모두)
□ TTFT 요구사항 확인 (실시간 UX면 thinking_budget: 0 필수)
□ 스테이징 환경에서 비용 실측 후 프로덕션 배포
□ Imagen 모델 사용 여부 확인 (6월 24일 종료)
□ 모델 ID 환경변수로 추상화 (하드코딩 제거)
□ gemini-2.5-flash 사용 시 10월 16일 재마이그레이션 일정 캘린더에 등록
✅ 정리 → gemini-2.0-flash, gemini-2.0-flash-lite 6월 1일 종료 완료, 현재 API 호출 실패 → 비용 유지: gemini-2.5-flash-lite ($0.10/$0.40), 단순 작업 최적 → 성능·비용 균형: gemini-2.5-flash — thinking_budget: 0 설정 필수 → 장기 운영·에이전틱: gemini-3.5-flash로 점프 마이그레이션 권장 → gemini-2.5-flash도 10월 16일 종료 — 지금 2.5 가면 4.5개월 후 또 마이그레이션 → thinking 토큰 미설정 시 실제 비용 2~3배 폭증 주의 → Imagen 계열도 6월 24일 종료 예정, 동시 대응 필요
❌ 주의사항 → gemini-3.5-flash 기본 TTFT 17~19초 — 실시간 UX에서 thinking_budget: 0 필수 → gemini-3-flash-preview → gemini-3.5-flash 이전 시 기본 thinking_level 변경됨 → 모델 alias(gemini-2.0-flash — 버전 없는 형태)도 동일하게 종료
'Gemini' 카테고리의 다른 글
| 코딩 몰라도 앱 만든다 — Google AI Studio 안드로이드 앱 빌더 사용법 (0) | 2026.06.10 |
|---|---|
| NotebookLM 업데이트 완전정리 — 유튜브·PDF 물어보고 PPT까지 뽑아주는 AI 연구 도우미 (0) | 2026.06.09 |
| Antigravity 2.0 데스크탑 에이전트 세팅 — 로컬 설치부터 MCP 연결까지 (0) | 2026.06.05 |
| Google AI Ultra 구독 분석 — Gemini Spark·Antigravity 포함 정리 (0) | 2026.06.05 |
| 폰 꺼도 혼자 일하는 AI — Gemini Spark 에이전트 완전 정리 (0) | 2026.06.05 |