6 min read

Gemini 3.6 Flash 마이그레이션 가이드: 가격, API 변경, Copilot·AI Gateway

Gemini 3.6 Flash와 3.5 Flash-Lite의 가격·용도를 비교하고, sampling parameter 제거와 prefilled turn 오류를 포함한 API 마이그레이션 절차를 정리합니다.

Gemini 3.6 Flash로 바꿀 때 모델 ID만 교체하면 끝나지 않습니다. temperature, top_p, top_k를 제거하고, 미리 채운 model turn을 없앤 뒤, 에이전트 작업은 3.6 Flash와 3.5 Flash-Lite로 나눠 평가해야 합니다. 이 세 가지를 먼저 점검하면 기존 호출이 조용히 다른 동작을 하거나 HTTP 400 오류가 발생하는 상황을 줄일 수 있습니다.

Google은 2026년 7월 21일 Gemini 3.6 Flash와 Gemini 3.5 Flash-Lite를 정식 제공하기 시작했습니다. 같은 날 Gemini 3.6 Flash는 GitHub Copilot과 Vercel AI Gateway에도 추가됐습니다. 이 글은 출시 기능을 나열하기보다 기존 API와 에이전트 워크플로를 어떻게 안전하게 옮길지에 집중합니다.

어떤 모델부터 평가해야 하나

모델모델 ID기본 thinking level입력 / 100만 토큰출력 / 100만 토큰권장 작업
Gemini 3.6 Flashgemini-3.6-flashmedium$1.50$7.50코딩, 멀티모달 분석, 여러 단계의 에이전트 작업
Gemini 3.5 Flash-Litegemini-3.5-flash-liteminimal$0.30$2.50분류, 추출, JSON 변환, 범위가 작은 subagent

두 모델 모두 100만 토큰 입력과 최대 64K 출력을 지원하며 thinking을 사용할 수 있습니다. 다만 도구 지원은 모델별 문서를 따로 확인해야 합니다. 현재 개별 모델 문서에서는 Gemini 3.6 Flash가 Computer Use를 지원한다고 표시하지만, Gemini 3.5 Flash-Lite 페이지는 Computer Use를 지원하지 않는 것으로 표시합니다. 상위 안내 페이지와 개별 사양표가 다를 수 있으므로 실제 도입 전에는 모델 페이지와 호출 결과를 기준으로 검증하는 편이 안전합니다.

실무에서는 다음처럼 시작할 수 있습니다.

  • 저장소 분석, 여러 파일 수정, 멀티모달 판단처럼 계획과 도구 호출이 이어지면 3.6 Flash
  • 문서 분류, 필드 추출, 요청 라우팅, 독립적인 소형 작업이면 3.5 Flash-Lite
  • Flash-Lite가 도구 호출을 너무 일찍 끝내면 thinking_levelmedium 또는 high로 올려 재평가
  • 모델 이름보다 성공률, 평균 tool call 수, 총 토큰, 사람이 수정한 비율을 함께 기록

Gemini 3.6 Flash의 입력 가격은 3.5 Flash와 같고, 공식 안내 기준 출력 가격은 100만 토큰당 $9.00에서 $7.50으로 낮아졌습니다. 하지만 실제 비용은 turn 수, 도구 호출, 재시도까지 포함해 측정해야 합니다.

Interactions API로 최소 호출부터 확인하기

Google은 최신 모델과 기능을 사용할 때 Interactions API를 권장합니다. JavaScript SDK에서는 다음처럼 시작할 수 있습니다.

npm install @google/genai
import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({
  apiKey: process.env.GEMINI_API_KEY,
});

const interaction = await ai.interactions.create({
  model: "gemini-3.6-flash",
  input: `이 TypeScript 변경을 검토하고,
문제가 되는 파일과 수정 순서를 제안해 주세요.`,
});

console.log(interaction.outputText);

마이그레이션 첫 단계에서는 도구를 많이 붙이지 않는 편이 좋습니다. 텍스트 호출, 구조화 출력, 함수 호출, 멀티턴 순서로 기능을 하나씩 추가해야 어떤 변경 때문에 실패하는지 찾기 쉽습니다.

제거해야 할 sampling parameter

Gemini 3.6 Flash와 3.5 Flash-Lite부터 temperature, top_p, top_k는 deprecated 상태이며 현재는 무시됩니다. Google은 이후 모델 세대에서는 이 값을 보내면 HTTP 400 오류를 반환할 수 있다고 안내합니다.

기존 코드가 아래와 같다면 값을 조정하는 것이 아니라 설정 자체를 제거해야 합니다.

// 제거 대상
const legacyGenerationConfig = {
  temperature: 0.7,
  topP: 0.9,
  topK: 40,
};

공통 LLM 옵션을 여러 제공자에 재사용한다면 Gemini 호출 전에 지원하지 않는 값을 제거합니다.

type SharedModelOptions = {
  temperature?: number;
  topP?: number;
  topK?: number;
  frequencyPenalty?: number;
  presencePenalty?: number;
};

function optionsForGemini(_options: SharedModelOptions) {
  return {
    // Gemini 3.6 계열에는 sampling·penalty 값을 전달하지 않습니다.
  };
}

출력 형식을 일정하게 만들려면 sampling 값보다 system instruction과 structured output을 사용합니다.

const response = await ai.models.generateContent({
  model: "gemini-3.6-flash",
  contents: "문의 내용을 billing, technical, other 중 하나로 분류해 주세요.",
  config: {
    systemInstruction: "설명 없이 category 필드만 포함한 JSON을 반환하세요.",
  },
});

console.log(response.text);

prefilled model turn은 400 오류가 된다

예전에는 응답 앞부분을 강제하기 위해 대화 기록 마지막에 model 역할을 미리 넣는 패턴을 사용하기도 했습니다.

{
  "contents": [
    {"role": "user", "parts": [{"text": "Hello world를 한국어로 번역해 줘."}]},
    {"role": "model", "parts": [{"text": "번역:"}]}
  ]
}

새 모델에서는 마지막 비어 있지 않은 turn이 model이면 요청이 실패합니다. 원하는 출력 형식은 prefill 대신 system instruction이나 structured output으로 지정합니다.

const interaction = await ai.interactions.create({
  model: "gemini-3.6-flash",
  input: "Hello world를 한국어로 번역해 줘.",
  systemInstruction: "소개 문구 없이 번역문만 출력하세요.",
});

멀티턴 상태도 배열을 직접 이어 붙이는 방식보다 서버가 반환한 previous_interaction_id를 사용하는 방향으로 옮기는 것이 권장됩니다.

기존 Gemini 3.x 코드 점검표

모델 ID와 두 가지 API 변경 외에도 다음 항목을 함께 확인합니다.

  1. thinking_budgetthinking_levelmedium 또는 high로 변경
  2. Gemini 3.x에서 지원하지 않는 candidate_count 제거
  3. prefilled model turn 제거
  4. generateContent 함수 호출을 유지한다면 모든 FunctionResponsecall_idname 포함
  5. 여러 단계 대화는 previous_interaction_id 중심으로 전환
  6. 실제 평가에서 tool call 수와 원하지 않은 파일 수정 여부 확인

Google은 3.6 Flash가 진단 작업에서 바로 수정하기보다 먼저 검사 코드를 실행하는 경향이 강해졌다고 설명합니다. 복잡한 작업에는 도움이 될 수 있지만 단순한 프런트엔드 변경에서는 탐색 단계가 늘어날 수 있습니다. 기존 timeout을 그대로 유지하지 말고 단계 수와 지연 시간을 다시 측정해야 합니다.

기능적인 코드 생성은 개선됐지만 일부 UI 스타일링 평가에서는 이전 모델을 선호한 사람이 있었다는 주의점도 공식 문서에 있습니다. 디자인 작업에서는 색상, 간격, 반응형 기준을 프롬프트나 저장소 스킬에 구체적으로 적는 편이 안전합니다.

GitHub Copilot 교체 일정 확인하기

GitHub는 2026년 7월 21일 Gemini 3.6 Flash를 Copilot에 추가했습니다. 동시에 기존 Gemini 3 Flash와 Gemini 2.5 Pro는 2026년 7월 31일 Copilot에서 제거될 예정입니다.

조직에서 Copilot 모델 정책을 관리한다면 다음 순서로 확인합니다.

  1. 조직 또는 엔터프라이즈의 model policy에서 새 모델 허용
  2. VS Code와 github.com model picker에서 노출 여부 확인
  3. 기존 Gemini 3 Flash 고정 지침이나 팀 문서 검색
  4. 7월 31일 전에 대체 모델로 전환
  5. agent·ask·edit 모드에서 같은 테스트 작업을 실행해 결과 비교

Copilot에서 모델이 보인다고 애플리케이션의 Gemini API 코드가 자동으로 바뀌는 것은 아닙니다. Copilot 정책과 API 모델 ID는 별도로 관리해야 합니다.

Vercel AI Gateway에서 두 모델 비교하기

AI SDK를 사용한다면 같은 호출 형태로 두 모델을 평가할 수 있습니다.

import { generateText } from "ai";

const models = [
  "google/gemini-3.6-flash",
  "google/gemini-3.5-flash-lite",
] as const;

for (const model of models) {
  const result = await generateText({
    model,
    prompt: "이 로그에서 배포 실패 원인과 다음 확인 명령을 제안해 주세요.",
  });

  console.log({
    model,
    text: result.text,
    usage: result.usage,
  });
}

AI Gateway를 통해 호출해도 모델별 API 제약이 사라지는 것은 아닙니다. sampling parameter와 대화 turn 구조는 계속 점검해야 합니다.

에이전트 실행과 승인·timeout·관측성까지 설계하는 경우에는 AI SDK 7 프로덕션 에이전트 가이드를 함께 참고할 수 있습니다. OpenAI 모델 계층과 비용을 비교하려면 GPT-5.6 Sol·Terra·Luna 선택 가이드가 연결됩니다.

안전한 마이그레이션 순서

  1. 현재 호출에서 sampling·penalty·prefill 사용 위치 검색
  2. 모델 ID와 SDK 버전을 한 곳에서 관리
  3. 대표 작업 20~50개로 고정 평가 세트 구성
  4. 3.6 Flash와 Flash-Lite를 같은 입력으로 비교
  5. 정답률 외에 tool call 수, 총 토큰, 지연 시간, 사람이 수정한 비율 기록
  6. 읽기 전용 작업에서 원하지 않은 수정이 발생하는지 확인
  7. 일부 트래픽부터 전환하고 오류율을 관찰

결론은 복잡한 코딩·멀티모달·에이전트 루프는 Gemini 3.6 Flash로, 반복량이 큰 분류·추출·subagent는 Gemini 3.5 Flash-Lite로 시작하되, 요청 형식과 평가 체계를 함께 바꾸는 것입니다.

공식 자료