2주차 2026-07-27

브리핑 봇 PRD

이 문서는 뭔가요

로드맵에서 “2주차·3주차에 만들기”로 정한 걸, 실제로 손댈 수 있게 구체화한 문서입니다.

✅ 2026-08-01 기준 — 여기 적힌 기능은 전부 구현 완료. 에러 알림, 관심 종목 고정, 미니멀 포맷 통일, 주간 카테고리 합계, 그리고 아래 보안 메모의 키 재발급·속성 저장 이전까지 모두 끝났습니다. 아래 본문은 “무엇을 왜 만들기로 했는지”의 기록으로 남겨둡니다.

뭘 · 왜 · 누구를 위해 (로드맵에서 그대로)

  • : 텔레그램 모닝/밤 브리핑 봇(헤르메스) 고도화 — 종목 리스트 고정, 가계부 카테고리 자동분류, 포맷 통일, 에러 알림 추가
  • : 지금은 브리핑에 필요한 정보가 빠지거나 지저분하게 나올 때가 있어서, 매일 실제로 믿고 받아볼 수 있게
  • 누구를 위해: 부기부기 본인 (매일 아침·밤 받아보는 개인 비서봇)

주차별 목표

  • 2주차 목표: 모닝 브리핑 완성
  • 3주차 목표: 밤 브리핑 완성

기능 명세

1. 관심 종목 리스트 (모닝 · 주가시황) — ✅ 완료

  • 보유 종목 기준 고정 리스트 사용
  • TBD — 나중에 실제 보유 종목 알려주기로 함확정·반영 완료. 모닝 브리핑에 매번 같은 종목이 빠짐없이 나옴
  • 기존처럼 나스닥/S&P500 등 지수 요약도 유지

2. 가계부 카테고리 자동분류 (밤 · 가계부) — ✅ 완료

  • 확정: 이미 구현되어 있음 — 새로 만들 필요 없음. 가계부 자동기록 웹훅(Apps Script)에 키워드 기반 RULES로 카테고리 자동분류가 이미 동작 중. 카테고리 목록도 고정돼 있음 (저축/대출/보험비/교통비/사치비/취미비/의료/주거비·통신비/일반생활비/식비·카페/기타 등).
  • 밤브리핑 스크립트에서 카테고리별 월 누적 합계(catSum)도 이미 메시지에 포함되고 있음.
  • 남은 실제 작업: (1) 밤 브리핑에 에러 알림 추가, (2) 메시지 포맷을 미니멀 스타일로 다듬기둘 다 완료.
  • 추가로, 월 누적만 있던 카테고리 합계에 주간 기준 합계도 넣었음.

3. 메시지 포맷 (모닝+밤 공통) — ✅ 완료

  • 확정: 미니멀 스타일 — 이모지 최소화, 섹션 구분은 굵은 글씨나 짧은 구분선 정도로 담백하게
  • 예시 (모닝 일정 파트):
    일정
    - 09:00 미팅
    
    증시
    나스닥 +0.8%
    

4. 에러 알림 — ✅ 완료 (모닝·밤 둘 다)

  • 확정: 실패했을 때만 텔레그램 메시지로 알림 (평소엔 조용히, 문제 생겼을 때만 “오늘 모닝 브리핑 실패했어요” 식으로)
  • 구현 방식: 브리핑 스크립트를 try/except로 감싸서, 실패 시 텔레그램 봇 API로 알림 메시지 전송 — 새 서비스 없이 지금 스크립트에 몇 줄만 추가하면 됨

완성 기준

  • 2주차: 3일 연속 모닝 브리핑에서 종목 리스트·포맷·에러 알림이 모두 정상 작동
  • 3주차: 3일 연속 밤 브리핑에서 카테고리 자동분류·포맷·에러 알림이 모두 정상 작동

어떻게 만드는 게 제일 쉬운가 (조사 결과, 2026-07 기준)

지금 있는 조합(Vultr 서버 + cron + Google AI Studio/Gemini)을 그대로 쓰는 게 제일 쉬움. 새 기술을 배울 필요 없음.

  • 에러 알림: 스크립트를 try/except로 감싸고, 실패 시 텔레그램 Bot API로 메시지 하나 보내는 게 지금 가장 흔하고 간단한 방식. 별도 모니터링 서비스 불필요.
  • 카테고리 자동분류: 별도 ML 모델을 학습시킬 필요 없이, 이미 쓰는 Gemini에게 프롬프트로 “이 지출을 [카테고리 목록] 중 하나로 분류해줘”라고 시키는 게 제일 쉽고 요즘 제일 많이 쓰는 방법. 카테고리 추가/수정도 프롬프트 문구만 고치면 됨.

아직 안 정해진 것 (열린 질문) — 전부 닫힘

  • 실제 보유 종목 리스트 → 확정·반영 완료
  • 기존 앱스크립트가 정확히 뭘 하는지 → 확인 완료: 수집+분류 다 함
  • 카테고리 이름 목록 확정 → 확인 완료: 이미 고정돼 있음 (위 항목 참고)

보안 메모 (2026-07-27 발견 → ✅ 조치 완료)

  • 가계부 웹훅/밤브리핑 Apps Script에 텔레그램 봇 토큰과 Gemini API 키가 코드에 직접 하드코딩돼 있었음.
  • 조치: (1) 두 키 재발급 완료, (2) Apps Script의 속성 서비스(Script Properties)로 이전 완료 — 이제 코드에 평문으로 남지 않음.