# Google Sheet 재무 대시보드 자동화 프로젝트 전략 ## 프로젝트 개요 Google Sheet의 doc ID를 파라미터로 받아, 재무 분석 대시보드를 자동으로 생성하는 스크립트 개발 ## 기술 스택 | 기술 | 역할 | |------|------| | Google Sheets API | 스프레드시트 읽기/쓰기 | | Google Apps Script | 대시보드 UI 및 차트 생성 | | Vertex AI (Gemini) | 재무 데이터 AI 분석 | | TypeScript/Node.js | 메인 스크립트 | ## 블로그 시리즈 구성 (v1 ~ v12) ### v1: 프로젝트 소개 및 아키텍처 - 프로젝트 목표 및 배경 - 전체 아키텍처 다이어그램 - 사용할 기술 스택 소개 - 예상 결과물 미리보기 ### v2: 개발 환경 설정 및 더미 데이터 준비 - Node.js + TypeScript 프로젝트 초기화 - Google Cloud 프로젝트 생성 - Service Account 설정 - **더미 재무 데이터 CSV 생성** (12개월치 거래 내역) - 수입 (급여, 보너스, 기타) - 지출 (식비, 교통비, 쇼핑, 주거비, 유틸리티 등) - 카테고리별 분류 ### v3: Google Sheets API 연동 기초 - Google Sheets API 활성화 - 서비스 계정 인증 구현 - 기본 CRUD 작업 (읽기/쓰기/업데이트) - 더미 데이터를 Google Sheet에 import ### v4: 재무 데이터 구조 설계 - 시트 구조 정의 (원본 데이터 / 분석 / 대시보드) - TypeScript 타입 정의 - 데이터 검증 로직 - 카테고리 매핑 테이블 ### v5: 기본 재무 분석 로직 구현 - 월별/카테고리별 집계 - 수입/지출 계산 - 전월 대비 증감률 - 평균 지출 계산 ### v6: Vertex AI 연동 - Vertex AI API 설정 - Gemini 모델 호출 구현 - 재무 데이터 분석 프롬프트 설계 - AI 분석 결과 파싱 ### v7: 대시보드 시트 자동 생성 - 요약 시트 생성 - 셀 서식 (색상, 폰트, 테두리) - 조건부 서식 (증감 표시) - 데이터 검증 (드롭다운) --- ## 📊 차트 시각화 시리즈 (v8 ~ v10) ### v8: 차트 시각화 1 - 기본 트렌드 차트 **목표**: 시간 흐름에 따른 재무 변화 파악 | 차트 | 용도 | 데이터 | |------|------|--------| | 라인 차트 (Line) | 월별 수입/지출 추이 | 12개월 월별 합계 | | 영역 차트 (Area) | 누적 저축 추이 | 월별 순저축 누적 | | 바 차트 (Column) | 월별 카테고리별 지출 비교 | 월 × 카테고리 매트릭스 | | 스택 바 차트 (Stacked Bar) | 월별 지출 구성 비율 | 카테고리별 비율 | **구현 사항**: - 차트 타입 선택 및 데이터 범위 지정 - 축 레이블, 범례 설정 - 색상 팔레트 커스터마이징 - 그리드라인 및 툴팁 설정 ### v9: 차트 시각화 2 - 비율 및 비교 차트 **목표**: 카테고리별 비중 및 비교 분석 | 차트 | 용도 | 데이터 | |------|------|--------| | 파이 차트 (Pie) | 전체 지출 카테고리 비율 | 연간 카테고리별 합계 | | 도넛 차트 (Doughnut) | 수입원별 비율 | 급여/보너스/부수입 | | 콤보 차트 (Combo) | 수입 vs 지출 + 저축률 | 바 + 라인 조합 | | 워터폴 차트 (Waterfall) | 월간 순자산 변동 | 수입/지출 항목별 | **구현 사항**: - 파이/도넛 차트 구멍 크기 조정 - 데이터 레이블 위치 및 포맷 - 콤보 차트 이중 축 설정 - 워터폴 차트 색상 (증가: 초록, 감소: 빨강) ### v10: 차트 시각화 3 - 고급 대시보드 컴포넌트 **목표**: 한눈에 파악하는 KPI 위젯 | 컴포넌트 | 용도 | 설명 | |----------|------|------| | 스파크라인 (Sparkline) | 미니 추이 그래프 | 셀 내 작은 라인 차트 | | 게이지 차트 (Gauge) | 목표 대비 달성률 | 저축 목표 진행률 | | 불릿 차트 (Bullet) | 예산 vs 실제 비교 | 카테고리별 예산 달성 | | 히트맵 (Heatmap) | 요일/시간별 지출 패턴 | 조건부 서식 기반 | | 스코어카드 | KPI 요약 | 핵심 수치 하이라이트 | | 진행률 바 | 월별 예산 소진율 | 시각적 진행 표시 | **구현 사항**: - SPARKLINE 함수 활용 - 조건부 서식으로 히트맵 구현 - 이모지/아이콘 활용 스코어카드 - 데이터 바 조건부 서식 - 대시보드 레이아웃 배치 --- ### v11: AI 인사이트 섹션 추가 - Vertex AI 분석 결과를 시트에 기록 - 주요 인사이트 하이라이트 - 개선 제안 섹션 - 월별 목표 설정 - AI 분석 자동 새로고침 ### v12: CLI 도구 완성 및 마무리 - 명령줄 인터페이스 구현 - 파라미터 처리 (doc ID, 기간, 차트 옵션 등) - 에러 핸들링 강화 - 실행 결과 보고서 - 전체 프로젝트 정리 및 회고 ## 프로젝트 디렉토리 구조 ``` 20251201-create-google-sheet-financial-dashboard/ ├── strategy.md # 이 문서 ├── data/ │ └── dummy-financial-data.csv # 더미 재무 데이터 ├── project/ │ ├── src/ │ │ ├── sheets/ │ │ │ ├── client.ts # Google Sheets 클라이언트 │ │ │ ├── reader.ts # 데이터 읽기 │ │ │ └── writer.ts # 데이터 쓰기 │ │ ├── analysis/ │ │ │ ├── calculator.ts # 재무 계산 │ │ │ └── aggregator.ts # 데이터 집계 │ │ ├── dashboard/ │ │ │ ├── creator.ts # 대시보드 생성 │ │ │ └── formatter.ts # 셀 서식 │ │ ├── charts/ │ │ │ ├── trend-charts.ts # v8: 라인/영역/바/스택 차트 │ │ │ ├── ratio-charts.ts # v9: 파이/도넛/콤보/워터폴 차트 │ │ │ └── kpi-widgets.ts # v10: 스파크라인/게이지/히트맵 │ │ ├── vertexai/ │ │ │ ├── client.ts # Vertex AI 클라이언트 │ │ │ └── analyzer.ts # AI 분석 │ │ ├── types/ │ │ │ └── index.ts # TypeScript 타입 │ │ └── index.ts # 메인 엔트리 │ ├── .env.example │ ├── package.json │ └── tsconfig.json ├── create-google-sheet-financial-dashboard-v1.md ├── create-google-sheet-financial-dashboard-v2.md ├── ... └── create-google-sheet-financial-dashboard-v12.md ``` ## 더미 데이터 설계 ### 기간 - 2024년 1월 ~ 2024년 12월 (12개월) ### 데이터 필드 | 필드 | 타입 | 설명 | |------|------|------| | date | YYYY-MM-DD | 거래일 | | type | income/expense | 수입/지출 | | category | string | 카테고리 | | subcategory | string | 세부 카테고리 | | amount | number | 금액 (엔) | | description | string | 설명 | | payment_method | string | 결제 수단 | ### 카테고리 구성 **수입 (Income)** - 급여 (Salary): 월급 - 보너스 (Bonus): 상여금 - 부수입 (Side Income): 기타 수입 **지출 (Expense)** - 식비 (Food): 식료품, 외식 - 주거비 (Housing): 월세, 관리비 - 유틸리티 (Utilities): 전기, 가스, 수도, 인터넷 - 교통비 (Transportation): 대중교통, 택시 - 쇼핑 (Shopping): 의류, 전자제품, 기타 - 의료비 (Healthcare): 병원, 약국 - 교육비 (Education): 서적, 강의 - 엔터테인먼트 (Entertainment): 영화, 게임, 구독서비스 - 보험료 (Insurance): 생명보험, 건강보험 - 저축/투자 (Savings): 적금, 투자 ## 예상 결과물 ``` $ npx ts-node src/index.ts --doc-id="1ABC...XYZ" --period="2024" 📊 Google Sheet 재무 대시보드 생성 완료! ✅ 원본 데이터 시트: 544건 거래 데이터 로드 ✅ 분석 시트 생성: 월별/카테고리별 집계 ✅ 대시보드 시트 생성: 요약 및 시각화 📈 차트 생성 완료 (12개): [v8] 트렌드 차트: • 월별 수입/지출 라인 차트 • 누적 저축 영역 차트 • 카테고리별 바 차트 • 월별 구성 스택 바 차트 [v9] 비율 차트: • 지출 카테고리 파이 차트 • 수입원 도넛 차트 • 수입/지출/저축률 콤보 차트 • 월간 변동 워터폴 차트 [v10] KPI 위젯: • 스파크라인 미니 그래프 (6개) • 저축 목표 게이지 차트 • 요일별 지출 히트맵 • 예산 달성률 진행바 ✅ AI 인사이트: Vertex AI 분석 완료 🔗 대시보드 링크: https://docs.google.com/spreadsheets/d/1ABC...XYZ 🤖 AI 분석 요약: 2024년 연간 분석 결과, 총 수입 ¥5,343,495, 총 지출 ¥4,224,666으로 약 ¥1,118,829의 순저축을 달성했습니다. 주요 지출 카테고리: 1. 주거비: 26% (¥1,116,000) 2. 식비: 22% (¥924,000) 3. 쇼핑: 15% (¥648,000) 💡 개선 제안: • 외식 빈도를 줄이면 연 ¥200,000 절약 가능 • 미사용 구독 서비스 2개 발견 (월 ¥1,980) • 전기/가스 사용량 피크 시즌 관리 권장 ``` ## 참고 자료 - Vertex AI 설정: `/var/www/tkim.planitai.co.jp/blog/20251130-post-money-forward-vertex-ai/` - Google Sheets API: https://developers.google.com/sheets/api - Vertex AI: https://cloud.google.com/vertex-ai --- **작성일**: 2025-12-01 **상태**: 계획 수립 완료