데이터 분석 자동화

실습 시간: 1.5시간 필요 도구: Google Sheets, Google Apps Script, Google AI Studio 산출물: 실무 데이터 분석 자동화 스크립트

📚 학습 전 준비 5장. 자동화에서 Vibe Coding 개념을 먼저 학습하세요. 이 실습은 코딩 없이 AI로 데이터 분석을 자동화하는 방법을 다룹니다.

📚 공식 문서

도구공식 문서주요 기능
Google SheetsSheets Help · Sheets API스프레드시트, 데이터 관리
Apps ScriptApps Script Docs · QuickstartGoogle Workspace 자동화
Google AI StudioAI Studio · QuickstartGemini API 키 발급 및 테스트
Gemini APIAPI Docs · PricingAI 분석 (무료 tier: 15 req/min)

왜 데이터 분석 자동화인가?

기존 방식의 문제

flowchart TD
    A["📊 데이터 받음"] --> B["👀 수동으로 확인"]
    B --> C["🧮 수작업 계산"]
    C --> D["📝 보고서 작성"]
    D --> E["⏰ 3시간 소요"]

    style E fill:#ff6b6b

문제점

  • 매번 같은 작업 반복
  • 인간 오류 발생
  • 시간 낭비

AI 자동화 후

flowchart TD
    A["📊 데이터 업데이트"] --> B["▶️ 스크립트 실행"]
    B --> C["🤖 AI 자동 분석"]
    C --> D["📈 인사이트 생성"]
    D --> E["⏱️ 1분 소요"]

    style E fill:#51cf66

효과

  • 클릭 한 번으로 완료
  • 일관된 분석 품질
  • 시간 97% 단축

Part 1: 기본 개념 (15분)

Google Apps Script란?

Google Workspace를 자동화하는 JavaScript 기반 플랫폼

특징설명
무료별도 서버 불필요
통합Sheets, Docs, Gmail 등 연동
클라우드어디서나 실행 가능
트리거시간 기반 자동 실행

왜 Apps Script + Gemini API?

1. 코드 작성: AI가 대신

당신: "판매 데이터를 분석하고 트렌드를 찾아줘"
AI: [Apps Script 코드 생성]

2. 실행 환경: Google이 제공

  • 설치 불필요
  • 무료 호스팅
  • Sheets와 즉시 연동

3. 비용: 거의 무료

  • Apps Script: 무료
  • Gemini API: 무료 tier (하루 1,500건)

전체 워크플로우

flowchart LR
    A["📊 Sheets<br/>데이터"] --> B["📝 Apps Script<br/>코드"]
    B --> C["🤖 Gemini API<br/>분석"]
    C --> D["📈 Sheets<br/>결과"]

    B -.->|"AI 생성"| B
    C -.->|"자연어 분석"| C

Part 2: 준비 작업 (10분)

1. Google AI Studio에서 API 키 발급

단계:

  1. aistudio.google.com 접속
  2. Get API key 클릭
  3. Create API key 선택
  4. API 키 복사 (안전한 곳에 저장)

⚠️ 주의: API 키는 절대 공개하지 마세요!


2. 실습용 Sheets 준비

방법 1: 샘플 데이터 사용

아래 링크에서 템플릿 복사:

(여기에 실습용 Google Sheets 템플릿 링크)

방법 2: 자기 데이터 사용

Google Sheets에 다음과 같은 데이터 준비:

날짜제품명카테고리수량매출
2024-01-01상품A전자제품5250000
2024-01-01상품B의류390000

Part 3: Level 1 - 따라하기 (30분)

목표: 제공된 코드를 그대로 사용해서 판매 데이터 분석 자동화하기

시나리오: 일일 매출 분석 보고서

요구사항:

  • 일일 총 매출 계산
  • 베스트셀러 TOP 3
  • 카테고리별 매출 비중
  • AI가 찾은 인사이트

Step 1: Apps Script 에디터 열기

  1. Google Sheets 열기
  2. 확장 프로그램Apps Script 클릭
  3. 새 프로젝트 생성 (자동으로 Code.gs 파일 열림)

Step 2: Gemini로 코드 생성하기 - Vibe Coding

핵심 학습: 완성된 코드를 복붙하는 대신, Gemini에게 요구사항을 설명하고 코드를 생성받습니다. 이 방식을 익히면 어떤 자동화든 직접 만들 수 있습니다.

왜 직접 코드를 주지 않나요?

완성된 코드를 복붙하면 당장은 편하지만, 나중에 수정하거나 새로운 자동화를 만들 때 막막해집니다. AI에게 요구사항을 설명하는 법을 배우면 어떤 자동화든 만들 수 있습니다.


2-1. 기본 구조 생성 요청

Gemini 또는 AI Studio에 다음 프롬프트 입력:

Google Apps Script로 판매 데이터 자동 분석 시스템을 만들어줘.

## 환경
- Google Sheets에서 실행
- Gemini API로 AI 인사이트 생성

## 데이터 구조 (첫 행이 헤더)
날짜 | 제품명 | 카테고리 | 수량 | 매출

## 필요한 기능

### 1. 메뉴 시스템 (onOpen 함수)
시트를 열면 "📊 AI 분석" 메뉴가 추가되어야 해:
- "🚀 판매 데이터 분석 실행" → analyzeSalesData 함수

### 2. 메인 분석 함수 (analyzeSalesData)
1. 현재 시트에서 데이터 읽기
2. 기본 분석 수행 (performBasicAnalysis 함수 호출)
3. Gemini API로 인사이트 생성 (getAIInsights 함수 호출)
4. 결과를 새 시트에 출력 (displayResults 함수 호출)
5. 완료 알림 표시

### 3. 기본 분석 함수 (performBasicAnalysis)
- 총 매출 계산
- 제품별 매출/수량 집계
- 카테고리별 매출 집계
- 베스트셀러 TOP 3 추출
- 카테고리별 매출 비중 계산

### 4. API 키 설정
코드 상단에 다음 변수 선언:
- GEMINI_API_KEY (사용자가 수정할 부분)
- GEMINI_API_URL (Gemini 1.5 Flash 엔드포인트)

## 출력 형식
- 주석으로 각 섹션 구분
- 한글 주석 포함
- 복사해서 바로 사용할 수 있는 완성된 코드

Gemini가 생성한 코드를 Apps Script에 붙여넣으세요.


2-2. Gemini API 연동 함수 요청

기본 구조가 완성되면, 같은 대화에서 계속 요청:

이제 getAIInsights 함수를 구현해줘.

## 동작
1. 분석 결과(analysis 객체)를 받아서 프롬프트 생성
2. Gemini API 호출
3. AI가 생성한 인사이트 텍스트 반환

## 프롬프트 내용
분석 결과를 보고 다음을 요청:
1. 주목할 만한 트렌드나 패턴 (2-3줄)
2. 매출 증대를 위한 실행 가능한 제안 (3가지)
3. 추가 분석이 필요한 영역

## Gemini API 호출
- URL: GEMINI_API_URL + "?key=" + GEMINI_API_KEY
- Method: POST
- Body: contents 배열에 프롬프트 텍스트

## 에러 처리
- try-catch로 감싸기
- 실패 시 에러 메시지 반환

2-3. 결과 출력 함수 요청

displayResults 함수를 구현해줘.

## 동작
1. "분석 결과" 시트가 있으면 삭제
2. 새 "분석 결과" 시트 생성
3. 보고서 형식으로 결과 출력

## 출력 내용
- 제목: "📊 판매 데이터 분석 보고서"
- 생성 시각
- 📈 기본 통계 (총 매출, 거래 건수)
- 🏆 베스트셀러 TOP 3
- 📦 카테고리별 매출 (비중 %)
- 🤖 AI 인사이트

## 서식
- 제목: 16pt, 굵게
- 섹션 제목: 굵게
- A열 너비: 200px, B열: 300px

Step 3: 코드 통합 및 API 키 입력

Gemini가 생성한 코드를 하나로 합치고, 상단의 API 키를 수정:

const GEMINI_API_KEY = "여기에_발급받은_API_키_붙여넣기";

Step 4: 디버깅 - 코드가 안 될 때

에러가 발생하면 Gemini에게 디버깅을 요청하세요:

이 Apps Script 코드에서 에러가 발생해:

[에러 메시지 붙여넣기]

코드:
[문제가 되는 함수 붙여넣기]

원인을 찾고 수정된 코드를 줘.

일반적인 에러와 해결법:

에러원인해결
TypeError: Cannot read property시트나 데이터가 없음시트 이름 확인, 데이터 존재 확인
Exception: Request failedAPI 키 오류 또는 할당량 초과API 키 확인, 대시보드에서 사용량 확인
Unexpected tokenJSON 파싱 오류응답 형식 확인, 로그로 실제 응답 출력

💡 Vibe Coding 팁

좋은 프롬프트의 특징

  1. 환경 명시: “Google Apps Script”, “Node.js” 등
  2. 데이터 구조 설명: 컬럼명, 형식
  3. 단계별 동작 설명: 1, 2, 3… 순서대로
  4. API 정보 제공: 엔드포인트, 인증 방식
  5. 에러 처리 요구: try-catch, 사용자 알림

이 방식의 장점

  • 요구사항을 명확히 정리하는 습관
  • 어떤 자동화든 직접 만들 수 있는 능력
  • 코드를 이해하고 수정할 수 있는 역량

Step 5: 저장 및 테스트

  1. 저장 버튼 클릭 (💾)
  2. 프로젝트 이름 입력 (예: “판매 데이터 분석”)
  3. Sheets로 돌아가서 새로고침 (F5)
  4. 상단 메뉴에 📊 AI 분석 메뉴 확인
  5. 📊 AI 분석🚀 판매 데이터 분석 실행 클릭
  6. 권한 요청 나오면 승인 (처음 한 번만)

Step 6: 결과 확인

실행 후 “분석 결과” 시트가 자동 생성됩니다:

📊 판매 데이터 분석 보고서
생성 시각: 2024-01-15 14:23:45

📈 기본 통계
총 매출        1,250,000원
거래 건수      45건

🏆 베스트셀러 TOP 3
1. 상품A       350,000원 (25개)
2. 상품B       280,000원 (18개)
3. 상품C       220,000원 (15개)

📦 카테고리별 매출
전자제품       650,000원 (52.0%)
의류          400,000원 (32.0%)
생활용품       200,000원 (16.0%)

🤖 AI 인사이트
[AI가 생성한 분석 내용]
- 전자제품이 매출의 절반 이상을 차지하고 있어...
- 상품A의 판매량이 특히 높은데, 재고 확보 필요...
- 생활용품 카테고리 매출이 낮아, 프로모션 고려...

✓ Level 1 체크 포인트

다음을 모두 완료했는지 확인하세요:

□ API 키 발급 받음
□ Gemini에게 기본 구조 코드 생성 요청
□ Gemini에게 각 함수 구현 요청 (분석/API/출력)
□ 생성된 코드 통합 및 Apps Script에 붙여넣기
□ API 키를 코드에 입력함
□ 메뉴에서 분석 실행함
□ "분석 결과" 시트가 생성됨
□ AI 인사이트가 한국어로 출력됨

문제 발생 시: Gemini에게 에러 메시지와 코드를 보여주고 디버깅 요청


Part 4: Level 2 - 응용하기 (25분)

목표: 제공된 코드를 자기 데이터/요구사항에 맞게 수정하기

이제 3가지 변경 포인트를 직접 수정해보세요.


변경 포인트 1: 데이터 컬럼명 변경

상황: 실제 업무 데이터는 컬럼명이 다를 수 있습니다.

예를 들어:

  • 날짜거래일자
  • 제품명상품명
  • 매출금액

수정 방법:

performBasicAnalysis 함수에서 다음 부분을 수정:

// 수정 전
const dateIdx = headers.indexOf("날짜");
const productIdx = headers.indexOf("제품명");
const revenueIdx = headers.indexOf("매출");

// 수정 후 (자신의 컬럼명으로)
const dateIdx = headers.indexOf("거래일자");
const productIdx = headers.indexOf("상품명");
const revenueIdx = headers.indexOf("금액");

실습:

  1. 자신의 Sheets 컬럼명 확인
  2. 코드에서 해당 부분 수정
  3. 저장 후 다시 실행
  4. 정상 작동 확인

변경 포인트 2: TOP 개수 조정

상황: TOP 3가 아니라 TOP 5를 보고 싶습니다.

수정 방법:

performBasicAnalysis 함수에서:

// 수정 전
.slice(0, 3)

// 수정 후
.slice(0, 5)

그리고 출력 부분도 수정:

// 수정 전
resultSheet.getRange(`A${row}`).setValue("🏆 베스트셀러 TOP 3");

// 수정 후
resultSheet.getRange(`A${row}`).setValue("🏆 베스트셀러 TOP 5");

실습:

  1. 코드에서 .slice(0, 3) 찾기
  2. 원하는 숫자로 변경
  3. 메뉴 텍스트도 함께 변경
  4. 결과 확인

변경 포인트 3: AI 분석 프롬프트 커스터마이징

상황: 업종별로 다른 인사이트가 필요합니다.

수정 방법:

getAIInsights 함수의 prompt 변수 수정:

// 예시 1: 이커머스 관점
const prompt = `
온라인 쇼핑몰 관점에서 다음 판매 데이터를 분석해주세요:
[분석 결과]
...

특히 다음 관점에서 분석해주세요:
1. 재구매율 증대 방안
2. 교차 판매 기회
3. 프로모션 타이밍
`;

// 예시 2: B2B 무역 관점
const prompt = `
B2B 수출 비즈니스 관점에서 다음 판매 데이터를 분석해주세요:
[분석 결과]
...

특히 다음 관점에서 분석해주세요:
1. 주요 바이어 집중도
2. 계절성 패턴
3. 재고 최적화
`;

실습:

  1. 자신의 업종/목적에 맞는 프롬프트 작성
  2. 코드에 반영
  3. 실행 후 AI 인사이트 품질 비교

AI 피드백 요청하기

수정한 코드가 잘 작동하는지 확인하려면 ChatGPT/Claude에게:

다음 Apps Script 코드를 검토해주세요:

[수정한 코드 복사]

확인 사항:
1. 문법 오류가 있나요?
2. 변수명이 일관되게 수정되었나요?
3. 더 개선할 부분이 있나요?

✓ Level 2 체크 포인트

□ 컬럼명을 자신의 데이터에 맞게 변경함
□ TOP 개수를 조정하고 결과 확인함
□ AI 프롬프트를 업종에 맞게 커스터마이징함
□ 수정 후 오류 없이 실행됨
□ AI에게 코드 리뷰를 요청함

Part 5: Level 3 - 새로 만들기 (20분)

목표: 자기 업무 시나리오에 맞는 완전히 새로운 분석 스크립트 만들기

이제 처음부터 설계해보세요!


시나리오 선택

다음 중 하나를 선택하거나, 자신만의 시나리오 작성:

시나리오 A: 고객 피드백 감성 분석

데이터: 날짜, 고객명, 평점, 리뷰 내용 분석: 긍정/부정/중립 비율, 주요 불만 키워드, 개선 제안

시나리오 B: 재고 최적화

데이터: 날짜, 제품명, 입고량, 출고량, 재고량 분석: 재고 회전율, 발주 시점 예측, 과잉/부족 재고 경고

시나리오 C: 마케팅 캠페인 성과

데이터: 캠페인명, 채널, 예산, 클릭수, 전환수 분석: ROI 계산, 채널별 효율, 예산 재배분 제안


작성 가이드

Step 1: PRD 작성

ChatGPT/Claude에게:

Google Apps Script + Gemini API로 다음 분석을 자동화하고 싶습니다:

[시나리오]: (선택한 시나리오)
[데이터 구조]:
- 컬럼1: ...
- 컬럼2: ...

[원하는 분석]:
1. ...
2. ...
3. ...

[출력 형식]:
- ...

이를 위한 PRD(Product Requirements Document)를 작성해주세요.

Step 2: 코드 생성

PRD를 바탕으로:

위 PRD를 바탕으로 Google Apps Script 코드를 생성해주세요.

요구사항:
- Level 1에서 제공한 코드 구조 참고
- 커스텀 메뉴 추가
- Gemini API로 인사이트 생성
- 결과를 새 시트에 출력

전체 코드를 주석과 함께 제공해주세요.

Step 3: 테스트 & 디버깅

  1. 생성된 코드를 Apps Script에 복사
  2. 샘플 데이터로 테스트
  3. 오류 발생 시:
다음 오류가 발생했습니다:
[오류 메시지 복사]

코드:
[해당 부분 코드]

해결 방법을 알려주세요.

Step 4: 개선

초기 버전이 작동하면:

현재 코드에 다음 기능을 추가하고 싶습니다:
- 기능 1: ...
- 기능 2: ...

어떻게 수정하면 될까요?

✓ Level 3 체크 포인트

□ 자기 업무 시나리오를 선택/작성함
□ AI와 함께 PRD를 작성함
□ 전체 코드를 생성하고 실행함
□ 오류를 디버깅하고 해결함
□ 최소 1개 기능을 추가 개선함
□ 실무에서 사용 가능한 수준으로 완성함

Part 6: 고급 활용 (선택)

자동 실행 트리거 설정

매일 오전 9시에 자동으로 분석 실행:

  1. Apps Script 에디터 → 트리거 (⏰ 아이콘)
  2. 트리거 추가 클릭
  3. 설정:
    • 함수: analyzeSalesData
    • 이벤트: 시간 기반
    • 시간 간격: 일 타이머
    • 시간: 오전 9~10시

이메일 알림 추가

분석 완료 후 이메일로 결과 전송:

function sendEmailReport(analysis) {
  const email = "your-email@example.com";
  const subject = "📊 일일 판매 분석 보고서";
  const body = `
총 매출: ${analysis.totalRevenue.toLocaleString()}
베스트셀러: ${analysis.topProducts[0].name}

자세한 내용은 스프레드시트를 확인하세요.
  `;

  MailApp.sendEmail(email, subject, body);
}

// analyzeSalesData 함수 마지막에 추가
sendEmailReport(analysis);

다른 시나리오 예시

시나리오 2: 고객 피드백 분석

// 감성 분석 프롬프트
const prompt = `
다음 고객 리뷰들을 분석해주세요:

${reviews.map((r) => `- "${r.content}" (평점: ${r.rating})`).join("\n")}

분석 요청:
1. 긍정/부정/중립 비율
2. 자주 언급되는 키워드 TOP 5
3. 주요 불만 사항 3가지
4. 개선 우선순위 제안
`;

시나리오 3: 재고 최적화

// 재고 분석 프롬프트
const prompt = `
다음 재고 데이터를 분석해주세요:

제품별 현재 재고:
${inventory.map((i) => `- ${i.product}: ${i.stock}개 (평균 일 판매: ${i.avgDaily}개)`).join("\n")}

분석 요청:
1. 재고 부족 위험 품목 (7일 이내 소진)
2. 과잉 재고 품목 (30일 이상 재고)
3. 최적 발주 시점 및 수량
4. 재고 회전율 개선 제안
`;

핵심 정리

3단계 학습 복습

레벨내용목표
Level 1코드 복붙작동 원리 이해
Level 2부분 수정응용력 향상
Level 3새로 만들기실전 적용

실무 적용 체크리스트

□ 자동화할 반복 작업을 식별했는가?
□ 데이터가 Sheets에 정리되어 있는가?
□ AI에게 명확한 분석 요청을 할 수 있는가?
□ 오류 발생 시 디버깅 방법을 아는가?
□ 결과를 팀과 공유할 수 있는가?

비용 관리

Gemini API 무료 tier:

  • 분당 15 요청
  • 일일 1,500 요청
  • 월 150만 요청

실무 사용 예시:

  • 하루 1번 실행: 월 30 요청 (무료)
  • 시간당 1번: 월 720 요청 (무료)
  • 실시간 분석: 유료 플랜 필요

다음 단계

더 배우기

  1. Apps Script 고급

  2. 데이터 시각화

    • Google Charts API
    • Sheets 차트 자동 생성
    • 대시보드 구축
  3. 다른 Google Workspace 자동화

    • Gmail: 이메일 자동 분류/회신
    • Docs: 문서 자동 생성
    • Calendar: 일정 자동 등록

실전 프로젝트 아이디어

  1. 판매 대시보드

    • 실시간 매출 모니터링
    • 주간/월간 리포트 자동 생성
    • 목표 달성률 추적
  2. 고객 관리 자동화

    • 신규 고객 환영 이메일
    • 만족도 조사 자동 발송
    • VIP 고객 알림
  3. 재무 보고 자동화

    • 거래 내역 분류
    • 예산 대비 실적 분석
    • 경비 승인 워크플로우

관련 자료

학습 경로

도구 가이드

직무별 사례

데이터 분석이 중요한 직무:


다음 단계

축하합니다! 🎉

이제 코딩 없이도 AI로 데이터 분석을 자동화할 수 있습니다.

기억하세요

  • 완벽한 코드보다 작동하는 코드가 먼저
  • 막히면 AI에게 물어보기
  • 작은 성공을 점진적으로 확장

이 스킬은 모든 직무에서 강력한 무기가 됩니다. 지금 당장 자신의 업무에 적용해보세요!

목차

Part 1. 시작하기
Part 2. 핵심 스킬
Part 3. 역할별 가이드
Part 4. 직무별 활용
Part 5. 도구 레퍼런스 > 5.1 전략 가이드
Part 6. 실습 워크북 > 6.1 핵심 스킬 실습
Part 6. 실습 워크북 > 6.2 무역실무 특화 실습