# v1: Google Sheet 재무 대시보드 자동화 - 프로젝트 소개 ## 프로젝트를 시작하며 안녕하세요! 이번 프로젝트는 **Google Sheets API**와 **Vertex AI**를 활용하여 재무 데이터를 자동으로 분석하고, 시각적인 대시보드를 생성하는 시스템을 만들어보는 여정입니다. ## 왜 이 프로젝트를 시작했나? 많은 사람들이 엑셀이나 Google Sheet로 가계부를 관리합니다. 하지만: **"이번 달 지출 패턴이 어땠지? 어디서 돈을 많이 썼을까?"** 이 간단한 질문에 답하려면: - 데이터를 일일이 정렬하고 - 피벗 테이블을 만들고 - 차트를 수동으로 그리고 - 패턴을 스스로 분석해야 합니다 **만약 스크립트 한 번 실행으로 이 모든 것이 자동화된다면?** ## 프로젝트 목표 이 프로젝트에서 만들 시스템은: 1. **Google Sheet의 doc ID만 입력하면** - 기존 재무 데이터를 자동으로 읽어오고 - 월별/카테고리별 분석을 수행하며 - 시각적인 대시보드를 자동 생성합니다 2. **다양한 차트와 시각화 컴포넌트 제공** - 트렌드 차트 (라인, 영역, 바, 스택) - 비율 차트 (파이, 도넛, 콤보, 워터폴) - KPI 위젯 (스파크라인, 게이지, 히트맵) 3. **Vertex AI로 인사이트 도출** - 지출 패턴 자동 분석 - 개선 제안 생성 - 자연어로 된 재무 요약 ## 전체 아키텍처 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 사용자 입력 │ │ (Google Sheet Doc ID) │ └─────────────────────┬───────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Node.js / TypeScript │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │ Sheets │ │ Analysis │ │ Dashboard │ │ │ │ Client │ │ Engine │ │ Generator │ │ │ │ │ │ │ │ │ │ │ │ - 데이터 읽기│ │ - 월별 집계 │ │ - 요약 시트 생성 │ │ │ │ - 데이터 쓰기│ │ - 카테고리별│ │ - 차트 생성 (12종) │ │ │ │ - 시트 관리 │ │ - 증감률 │ │ - 조건부 서식 │ │ │ └──────┬──────┘ └──────┬──────┘ └───────────┬─────────────┘ │ │ │ │ │ │ └─────────┼────────────────┼─────────────────────┼───────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────┐ │ Google Sheets │ │ Vertex AI │ │ Output Dashboard │ │ API │ │ (Gemini) │ │ │ │ │ │ │ │ ┌───────────────────┐ │ │ - 인증 │ │ - 데이터 분석 │ │ │ 📊 요약 시트 │ │ │ - CRUD 작업 │ │ - 인사이트 생성 │ │ │ 📈 차트 시트 │ │ │ - 차트 생성 │ │ - 제안 도출 │ │ │ 🤖 AI 인사이트 │ │ └─────────────────┘ └─────────────────┘ │ └───────────────────┘ │ └─────────────────────────┘ ``` ## 기술 스택 ### Google Sheets API | 항목 | 내용 | |------|------| | **역할** | 스프레드시트 데이터 읽기/쓰기, 차트 생성 | | **인증** | Service Account (JSON 키) | | **선택 이유** | 무료, 공유 용이, 웹 기반 접근 | ### TypeScript / Node.js | 항목 | 내용 | |------|------| | **역할** | 메인 스크립트 언어 | | **버전** | Node.js 18+, TypeScript 5+ | | **선택 이유** | 타입 안정성, Google API SDK 지원 | ### Vertex AI (Gemini) | 항목 | 내용 | |------|------| | **역할** | 재무 데이터 AI 분석 및 인사이트 생성 | | **모델** | gemini-1.5-flash | | **선택 이유** | 대용량 컨텍스트, 빠른 응답, Google Cloud 통합 | ## 생성되는 차트 미리보기 ### v8: 트렌드 차트 (4종) ``` 📈 라인 차트 📊 영역 차트 📊 바 차트 📊 스택 바 ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ /\ │ │████████ │ │ ▓ ▓ ▓ ▓ │ │▓▓▓▓▓▓▓▓▓▓ │ │ / \ / │ │██████████ │ │ ▓ ▓ ▓ ▓ │ │▒▒▒▒▒▒▒▒▒▒ │ │ / \/ │ │████████████│ │ ▓ ▓ ▓ ▓ │ │░░░░░░░░░░ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ 월별 수입/지출 누적 저축 추이 카테고리별 비교 월별 구성 비율 ``` ### v9: 비율 차트 (4종) ``` 🥧 파이 차트 🍩 도넛 차트 📊 콤보 차트 📊 워터폴 ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ ████ │ │ ████ │ │ ▓ ▓ / │ │▓▓▓ │ │ ██████████ │ │ ██ ██ │ │ ▓ ▓ ▓ / │ │ ░░░ │ │ ████ │ │ ████ │ │ ▓ ▓ ▓/ │ │ ▓▓▓▓▓ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ 지출 카테고리 수입원 비율 수입/지출+저축률 순자산 변동 ``` ### v10: KPI 위젯 (6종) ``` ⚡ 스파크라인 📍 게이지 🎯 불릿 차트 ┌────────────┐ ┌────────────┐ ┌────────────┐ │ ▁▂▃▅▃▂▁▂▃▅│ │ 75% │ │████████░░ │ │ 식비 추이 │ │ ◐────────│ │ 예산 80% │ └────────────┘ └────────────┘ └────────────┘ 🌡️ 히트맵 📋 스코어카드 📊 진행바 ┌────────────┐ ┌────────────┐ ┌────────────┐ │▓▓░░▓▓░ │ │ 총수입 │ │████████░░ │ │░░▓▓░░▓▓ │ │ ¥5,343,495 │ │ 80% 달성 │ │▓▓░░▓▓░░ │ │ ▲ +5% │ │ │ └────────────┘ └────────────┘ └────────────┘ 요일별 지출 핵심 수치 요약 예산 소진율 ``` ## 예상 결과물 ```bash $ npx ts-node src/index.ts --doc-id="1ABC...XYZ" --period="2024" 📊 Google Sheet 재무 대시보드 생성 완료! ✅ 원본 데이터 시트: 544건 거래 데이터 로드 ✅ 분석 시트 생성: 월별/카테고리별 집계 ✅ 대시보드 시트 생성: 요약 및 시각화 📈 차트 생성 완료 (12개): [v8] 트렌드 차트: 라인, 영역, 바, 스택 바 [v9] 비율 차트: 파이, 도넛, 콤보, 워터폴 [v10] KPI 위젯: 스파크라인, 게이지, 히트맵, 진행바 ✅ 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) ``` ## 프로젝트 구조 ``` 20251201-create-google-sheet-financial-dashboard/ ├── data/ │ ├── generate-dummy-data.js # 더미 데이터 생성 스크립트 │ └── dummy-financial-data.csv # 544건 거래 데이터 ├── project/ │ ├── src/ │ │ ├── sheets/ # Google Sheets 클라이언트 │ │ ├── analysis/ # 재무 분석 엔진 │ │ ├── dashboard/ # 대시보드 생성기 │ │ ├── charts/ # 차트 생성 모듈 │ │ │ ├── trend-charts.ts # v8: 라인/영역/바 │ │ │ ├── ratio-charts.ts # v9: 파이/도넛/콤보 │ │ │ └── kpi-widgets.ts # v10: 스파크라인/게이지 │ │ ├── vertexai/ # AI 분석 │ │ └── index.ts # CLI 엔트리포인트 │ ├── package.json │ └── tsconfig.json ├── create-google-sheet-financial-dashboard-v1.md ~ v12.md └── strategy.md ``` ## 학습 목표 이 프로젝트를 통해 배울 수 있는 것들: | 영역 | 학습 내용 | |------|----------| | **Google Sheets API** | 인증, CRUD, 차트 생성, 조건부 서식 | | **Vertex AI** | Gemini 모델 호출, 프롬프트 엔지니어링 | | **TypeScript** | 타입 정의, 모듈 구조화, 에러 핸들링 | | **데이터 시각화** | 12가지 차트 타입, KPI 대시보드 설계 | | **CLI 개발** | 명령줄 도구 제작, 파라미터 처리 | ## 블로그 시리즈 로드맵 | 버전 | 주제 | 핵심 내용 | |------|------|----------| | v1 | 프로젝트 소개 | 아키텍처, 기술 스택 ✅ | | v2 | 환경 설정 | 프로젝트 초기화, 더미 데이터 | | v3 | Sheets API 기초 | 인증, CRUD, 데이터 import | | v4 | 데이터 구조 | 시트 설계, 타입 정의 | | v5 | 분석 로직 | 집계, 증감률 계산 | | v6 | Vertex AI | AI 연동, 프롬프트 | | v7 | 대시보드 생성 | 요약 시트, 서식 | | v8 | 트렌드 차트 | 라인, 영역, 바, 스택 | | v9 | 비율 차트 | 파이, 도넛, 콤보, 워터폴 | | v10 | KPI 위젯 | 스파크라인, 게이지, 히트맵 | | v11 | AI 인사이트 | 분석 결과 시트 기록 | | v12 | CLI 완성 | 최종 마무리 | ## 다음 단계 v2에서는: - Node.js + TypeScript 프로젝트 초기화 - Google Cloud 프로젝트 생성 및 서비스 계정 설정 - 더미 재무 데이터 상세 설명 --- **작성일**: 2025-12-01 **상태**: ✅ 완료 **다음**: v2 - 개발 환경 설정 및 더미 데이터 준비