데이터 분석 자동화
실습 시간: 1.5시간 필요 도구: Google Sheets, Google Apps Script, Google AI Studio 산출물: 실무 데이터 분석 자동화 스크립트
📚 학습 전 준비 5장. 자동화에서 Vibe Coding 개념을 먼저 학습하세요. 이 실습은 코딩 없이 AI로 데이터 분석을 자동화하는 방법을 다룹니다.
📚 공식 문서
| 도구 | 공식 문서 | 주요 기능 |
|---|---|---|
| Google Sheets | Sheets Help · Sheets API | 스프레드시트, 데이터 관리 |
| Apps Script | Apps Script Docs · Quickstart | Google Workspace 자동화 |
| Google AI Studio | AI Studio · Quickstart | Gemini API 키 발급 및 테스트 |
| Gemini API | API Docs · Pricing | AI 분석 (무료 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 키 발급
단계:
- aistudio.google.com 접속
- Get API key 클릭
- Create API key 선택
- API 키 복사 (안전한 곳에 저장)
⚠️ 주의: API 키는 절대 공개하지 마세요!
2. 실습용 Sheets 준비
방법 1: 샘플 데이터 사용
아래 링크에서 템플릿 복사:
(여기에 실습용 Google Sheets 템플릿 링크)
방법 2: 자기 데이터 사용
Google Sheets에 다음과 같은 데이터 준비:
| 날짜 | 제품명 | 카테고리 | 수량 | 매출 |
|---|---|---|---|---|
| 2024-01-01 | 상품A | 전자제품 | 5 | 250000 |
| 2024-01-01 | 상품B | 의류 | 3 | 90000 |
| … | … | … | … | … |
Part 3: Level 1 - 따라하기 (30분)
목표: 제공된 코드를 그대로 사용해서 판매 데이터 분석 자동화하기
시나리오: 일일 매출 분석 보고서
요구사항:
- 일일 총 매출 계산
- 베스트셀러 TOP 3
- 카테고리별 매출 비중
- AI가 찾은 인사이트
Step 1: Apps Script 에디터 열기
- Google Sheets 열기
- 확장 프로그램 → Apps Script 클릭
- 새 프로젝트 생성 (자동으로 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 failed | API 키 오류 또는 할당량 초과 | API 키 확인, 대시보드에서 사용량 확인 |
Unexpected token | JSON 파싱 오류 | 응답 형식 확인, 로그로 실제 응답 출력 |
💡 Vibe Coding 팁
좋은 프롬프트의 특징
- 환경 명시: “Google Apps Script”, “Node.js” 등
- 데이터 구조 설명: 컬럼명, 형식
- 단계별 동작 설명: 1, 2, 3… 순서대로
- API 정보 제공: 엔드포인트, 인증 방식
- 에러 처리 요구: try-catch, 사용자 알림
이 방식의 장점
- 요구사항을 명확히 정리하는 습관
- 어떤 자동화든 직접 만들 수 있는 능력
- 코드를 이해하고 수정할 수 있는 역량
Step 5: 저장 및 테스트
- 저장 버튼 클릭 (💾)
- 프로젝트 이름 입력 (예: “판매 데이터 분석”)
- Sheets로 돌아가서 새로고침 (F5)
- 상단 메뉴에 📊 AI 분석 메뉴 확인
- 📊 AI 분석 → 🚀 판매 데이터 분석 실행 클릭
- 권한 요청 나오면 승인 (처음 한 번만)
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("금액");
실습:
- 자신의 Sheets 컬럼명 확인
- 코드에서 해당 부분 수정
- 저장 후 다시 실행
- 정상 작동 확인
변경 포인트 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");
실습:
- 코드에서
.slice(0, 3)찾기 - 원하는 숫자로 변경
- 메뉴 텍스트도 함께 변경
- 결과 확인
변경 포인트 3: AI 분석 프롬프트 커스터마이징
상황: 업종별로 다른 인사이트가 필요합니다.
수정 방법:
getAIInsights 함수의 prompt 변수 수정:
// 예시 1: 이커머스 관점
const prompt = `
온라인 쇼핑몰 관점에서 다음 판매 데이터를 분석해주세요:
[분석 결과]
...
특히 다음 관점에서 분석해주세요:
1. 재구매율 증대 방안
2. 교차 판매 기회
3. 프로모션 타이밍
`;
// 예시 2: B2B 무역 관점
const prompt = `
B2B 수출 비즈니스 관점에서 다음 판매 데이터를 분석해주세요:
[분석 결과]
...
특히 다음 관점에서 분석해주세요:
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: 테스트 & 디버깅
- 생성된 코드를 Apps Script에 복사
- 샘플 데이터로 테스트
- 오류 발생 시:
다음 오류가 발생했습니다:
[오류 메시지 복사]
코드:
[해당 부분 코드]
해결 방법을 알려주세요.
Step 4: 개선
초기 버전이 작동하면:
현재 코드에 다음 기능을 추가하고 싶습니다:
- 기능 1: ...
- 기능 2: ...
어떻게 수정하면 될까요?
✓ Level 3 체크 포인트
□ 자기 업무 시나리오를 선택/작성함
□ AI와 함께 PRD를 작성함
□ 전체 코드를 생성하고 실행함
□ 오류를 디버깅하고 해결함
□ 최소 1개 기능을 추가 개선함
□ 실무에서 사용 가능한 수준으로 완성함
Part 6: 고급 활용 (선택)
자동 실행 트리거 설정
매일 오전 9시에 자동으로 분석 실행:
- Apps Script 에디터 → 트리거 (⏰ 아이콘)
- 트리거 추가 클릭
- 설정:
- 함수:
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 요청 (무료)
- 실시간 분석: 유료 플랜 필요
다음 단계
더 배우기
-
Apps Script 고급
- 공식 튜토리얼
- Custom 함수 만들기
- 외부 API 연동
-
데이터 시각화
- Google Charts API
- Sheets 차트 자동 생성
- 대시보드 구축
-
다른 Google Workspace 자동화
- Gmail: 이메일 자동 분류/회신
- Docs: 문서 자동 생성
- Calendar: 일정 자동 등록
실전 프로젝트 아이디어
-
판매 대시보드
- 실시간 매출 모니터링
- 주간/월간 리포트 자동 생성
- 목표 달성률 추적
-
고객 관리 자동화
- 신규 고객 환영 이메일
- 만족도 조사 자동 발송
- VIP 고객 알림
-
재무 보고 자동화
- 거래 내역 분류
- 예산 대비 실적 분석
- 경비 승인 워크플로우
관련 자료
학습 경로
- 5장. 자동화: Vibe Coding 전체 과정
- 실습: PRD/TDD 작성: 기획 문서 작성법
- 실습: 바이브 코딩: 웹 페이지 제작 실습
도구 가이드
- Google AI Studio: Gemini API 활용
- Google Colab: Python 자동화
- Claude: 복잡한 코드 생성
직무별 사례
데이터 분석이 중요한 직무:
다음 단계
축하합니다! 🎉
이제 코딩 없이도 AI로 데이터 분석을 자동화할 수 있습니다.
기억하세요
- 완벽한 코드보다 작동하는 코드가 먼저
- 막히면 AI에게 물어보기
- 작은 성공을 점진적으로 확장
이 스킬은 모든 직무에서 강력한 무기가 됩니다. 지금 당장 자신의 업무에 적용해보세요!