본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 07. 05:55

Google Apps Script에서 Gemini API를 호출하는 구현 가이드 ― 업무 자동화를 위한 구현 패턴 모음

요약

Google Apps Script(GAS)를 사용하여 Gemini API를 연동하고 업무를 자동화하는 구체적인 구현 패턴을 소개합니다. Gmail, Sheets, Docs 등 Google Workspace 환경에서의 활용 예시와 보안 및 비용 관리 가이드를 제공합니다.

핵심 포인트

  • Gemini API와 GAS를 연동한 업무 자동화 패턴 제공
  • PropertiesService를 활용한 API 키 보안 관리 권장
  • Gmail, Sheets, Docs 등 주요 서비스별 구현 예시 포함
  • 운영 환경을 위한 Vertex AI 활용 및 데이터 거버넌스 강조
  • 기밀 정보 보호를 위한 데이터 마스킹 검토 필요

Google Workspace (GWS)를 사용하는 기업에서 업무 자동화에 Google Apps Script (GAS)를 활용하는 사례는 많습니다.

2024~2026년에 걸쳐, Gemini API를 GAS에서 호출하여 AI로 업무를 가속화하는 구현 패턴이 급격히 정비되어 왔습니다.

본 기사에서는,

  • Gemini API 연동의 기본 패턴
  • Gmail / Sheets / Docs에서의 구현 예시
  • 보안·비용 관리
  • 자주 발생하는 실수(ハマりどころ)

를 코드를 포함하여 해설합니다.

  • Google Workspace 계약 (개인 Gmail에서도 일부 동작 가능)

  • Google Cloud 프로젝트

  • 과금 활성화 (Gemini는 종량제 과금)

  • Apps Script에 대한 기본 지식

  • https://aistudio.google.com 에 접속

  • "Get API Key" → "Create API key in new project"

  • API 키를 복사

  • https://console.cloud.google.com

  • Vertex AI API를 활성화

  • 서비스 계정(Service Account)을 생성

  • 필요한 역할(Role) 부여 (
    roles/aiplatform.user
    )

운영 환경에서는 Vertex AI를 경유하는 것이 권장됩니다. 데이터 거버넌스(Data Governance), SLA, 감사 로그(Audit Log)가 견고하기 때문입니다.

GAS 코드 내에 API 키를 직접 작성하지 마세요. PropertiesService를 사용합니다:

// 최초 1회 실행: API 키를 저장
function setupApiKey() {
PropertiesService.getScriptProperties().setProperty(
...
function callGemini(prompt, model = 'gemini-2.5-flash') {
const apiKey = getApiKey();
const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${apiKey}`;
...
function classifyIncomingEmails() {
const threads = GmailApp.search('label:inbox is:unread', 0, 20);
threads.forEach(thread => {
...
function setupGmailTrigger() {
// 기존 트리거 삭제
ScriptApp.getProjectTriggers().forEach(trigger => {
...
function summarizeSheetData() {
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();
...
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('AI 활용')
...
function summarizeMeetingDoc() {
const docId = DocumentApp.getActiveDocument().getId();
const docBody = DocumentApp.openById(docId).getBody().getText();
...

GAS + Webhook으로 타 시스템과 연동:

function postSummaryToSlack(summaryText) {
const webhookUrl = PropertiesService.getScriptProperties()
.getProperty('SLACK_WEBHOOK_URL');
...

기밀 정보(사원 번호, 고객 ID 등)를 Gemini에 보낼 경우, 마스킹 (Masking) 을 검토하십시오:

function maskSensitiveData(text) {
return text
.replace(/[A-Z]{2}\d{6}/g, '[ID-MASKED]') // 사원 ID 패턴
...

Google AI Studio(generativelanguage.googleapis.com)는 개인/PoC(Proof of Concept)용입니다. 본 운영 환경에서는 Vertex AI(aiplatform.googleapis.com) 사용을 권장합니다:

  • 데이터가 학습에 사용되지 않음 (명시적 설정)
  • VPC Service Controls를 통한 경계 제어
  • 감사 로그 (Cloud Audit Logs)
  • 리전 지정 (일본 리전)
// Vertex AI를 통한 호출 예시
function callVertexAI(prompt) {
const projectId = 'your-gcp-project';
...
function callGeminiWithRetry(prompt, maxRetries = 3) {
let lastError;
for (let i = 0; i < maxRetries; i++) {
...
모델용도가격 기준(2026년)
gemini-2.5-flash고속·대량 처리저렴
...

루틴 업무에는 flash를, 복잡한 분석에는 pro를 구분하여 사용하십시오.

function callGeminiWithTokenCount(prompt) {
const apiKey = getApiKey();
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${apiKey}`;
...
function calculateMonthlyCost() {
// 로그 시트에서 토큰 사용량을 집계
const sheet = SpreadsheetApp.openById('YOUR_LOG_SHEET_ID').getActiveSheet();
...

장시간 처리는 배치 분할(Batch Splitting) + 트리거 재시작으로 대응하십시오:

function processBatch() {
const batchSize = 50;
const currentIndex = parseInt(
...

사용자 입력을 프롬프트(Prompt)에 포함할 때는 구분자(Delimiter)로 명확하게 구분하십시오:

function safePrompt(userInput) {
return `
다음 사용자 입력을 요약해 주세요.
...
function parseJSONResponse(response) {
try {
// 마크다운 코드 블록 제거
let cleaned = response.replace(/```json\s*/g, '').replace(/```\s*/g, '');
return JSON.parse(cleaned);
} catch (error) {
console.error('JSON parse failed:', response);
...

Gemini 2.5에서는 JSON Schema를 통한 구조화된 응답(Structured Response)이 가능합니다:

function callGeminiWithSchema(prompt, schema) {
const apiKey = getApiKey();
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${apiKey}`;
...

Google Apps Script + Gemini API는,

Google Workspace에 통합된 자동화
코드베이스 관리가 용이
기존 업무로의 원활한 통합
PoC에서 본 운영까지 심리스(Seamless)하게 진행 가능

하다는 점에서, 중소기업의 AI 활용을 위한 첫걸음으로 최적입니다.

특히 Gmail 분류, Sheets 요약, Docs 요점 추출과 같은 유스케이스는 즉각적인 업무 효율화로 이어집니다. 본 운영 시에는 Vertex AI를 통해 거버넌스 및 비용 관리를 철저히 할 것을 권장합니다.

카메다 에이스케 / 주식회사 BTN 컨설팅 대표이사

정보기술(IT) 아웃소싱 「정보기술 365」, AI 구현 지원 「AI 365」 운영

Google Workspace × Gemini 업무 자동화, Apps Script 구현, Vertex AI 연동을 다수 지원. 중소기업의 AI 구현 로드맵 책정부터 PoC, 운영까지 일관 대응.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0