🗒️ 소개
1단계에서 기록된 시간별 활동 로그 데이터를 활용해 자동 분석 및 리포트 발송 시스템을 구축했습니다. 매일 아침 자동으로 요약된 리포트를 이메일로 받고, 웹 대시보드에서 그래프로 시각화된 통계를 확인할 수 있게 하는 것이 목표였습니다. 회고를 정리하고 하루를 되돌아보는 습관을 만들기 위해 시도했습니다.
Hero 스터디장님이 실습 가이드와 setup files 를 잘 준비해주셔서 어렵지 않게 완성할 수 있었습니다. 🌤️
📝 진행 방법
🛠️ 사용 도구 및 활용 방식
Google Apps Script: 전체 자동화 로직 작성
Google Sheets: 원본 데이터 저장 및 분석 대상
Gmail API: HTML 이메일 자동 발송
Chart.js + HTML 템플릿: 웹 대시보드 구성
▶️ 주요 구현 흐름
Apps Script 프로젝트 생성
기존 시간별 활동 로그 스프레드시트에서 Apps Script 열기
프로젝트 이름:
Daily Log Reporter
코드 구성 (
Code.gs)setupDailyTrigger(): 매일 오전 8시에generateDailyReport함수가 자동으로 실행되도록 예약(트리거) 설정generateDailyReport(): [메인 함수] 데이터 추출, 통계 분석, AI 피드백 생성, 시트 저장, 이메일 발송까지의 전체 과정을 총괄 실행doGet(e): 웹앱 URL로 접속했을 때 실행되며, 브라우저에 리포트 화면(HTML)을 출력getYesterdayDate(): 분석 대상인 '어제' 날짜를 계산 (YYYY-MM-DD 형식)getDateData(targetDate): 'Daily Log' 시트에서 해당 날짜의 데이터만 필터링하여 추출analyzeData(data): 데이터의 평균 만족도/집중도 계산 및 고성과/저성과 구간 분류generateAIInsights(data, stats): [AI 기능] Gemini API를 호출하여 데이터를 바탕으로 칭찬과 조언이 담긴 피드백 생성saveReport(date, ...): 분석된 통계와 AI 피드백을 '데일리 리포트' 시트에 한 줄로 저장sendHtmlEmailReport(date, ...): 통계 그래프와 AI 코멘트가 포함된 예쁜 HTML 이메일을 사용자에게 발송sendNotification(message): 시스템 에러 발생 시 사용자에게 비상 알림 메일 발송formatTime,getScoreClass,getScoreLabel: 시간 포맷 변환 및 점수에 따른 등급(우수/보통/미흡) 반환 헬퍼 함수testDailyReport(): 메인 함수를 수동으로 즉시 실행해보기 위한 테스트 함수testWebApp(): 배포된 웹앱의 URL을 로그로 확인하는 함수checkTriggers(): 현재 설정된 자동화 트리거가 정상적으로 있는지 확인하는 함수
HTML 템플릿 구성 (
Report.html)Chart.js 기반 시각화 포함 (라인 그래프, 도넛 차트 등)
감정노트, 고성과/저성과 시간대까지 반영
웹앱 배포
웹 URL 생성 → 언제든 접속해서 확인 가능
이메일 자동 발송 테스트
testDailyReport()함수로 메일 발송 여부 확인
📊 데일리 리포트와 이메일
✨ 구글 시트에 저장된 데일리 리포트
🌈 결과와 배운 점
시간대 별로 활동로그를 기록하는 루틴이 생겼고 앞으로 다음날 아침 자동으로 한눈에 나의 하루를 시각화해서 볼 수 있는 리포트와 AI의 피드백이 도착하면 무심히 흘려 보내던 나의 하루를 파악하고 기록할 수 있겠구나 하는 기대가 생겼습니다.
Chart.js를 활용한 시각화 덕분에 시간대별 집중도, 작업 분포를 쉽게 확인할 수 있어 좋았습니다.
Hero 스터디 장님의 이메일 템플릿 디자인과 데일리 리포트 HTML 구조를 보며 웹 디자인에 대한 감도 얻을 수 있었습니다.
✅ 시행착오 및 팁
처음에 구글 시트에 활동 로그 기록 시트의 이름을 앱스 스크립트 코드에 있는 "Daily Log"와 일치 시키지 않아서 오류가 발생해서 시트 이름을 "Daily Log"로 바꾼 후 정상 동작했습니다.
AI 피드백을 위해서는 AI API key가 필요한데 코드에 직접 API key를 넣는 것은 보안상 위험하므로 앱스 스크립트의 좌측 메뉴 하단에서 프로젝트 설정을 클릭해서 스크립트 속성에 추가하는 것이 좋습니다.
이 때 속성에는 GEMINI_API_KEY , 값에는 발급 받은 Gemini API key 를 넣으면 됩니다.
(Gemini API key 는 Google AI Studio 에서 Get API key 를 클릭해서 받으면 됩니다.)
🧭 도움 받은 글
Hero 스터디 장님의 Apps Script HTML 템플릿 설치 가이드.pdf 와 setup-files.zip 파일
💠 마무리 메시지
기록하는 것만으로도 큰 인사이트를 얻을 수 있지만, 이를 자동 분석 & 시각화까지 연결하니 ‘데이터로 하루를 성찰’하는 루틴이 완성되는 느낌이었습니다. 하루 1분만 투자해 기록해두면, 나중에는 100배의 의미로 돌아오는 것 같아요 💪