폰 결제 알림을 노션 가계부로 자동 기록하기 (3) — 노션을 대시보드로: 요약·규칙·기간 통계
기록만 쌓이면 안 본다. 노션 코드블록에 월간 요약을 자동으로 그리고, 분류 규칙을 노션 DB로 빼고, 동적 기간 통계를 이벤트형으로 갱신한 이야기. 한글 정렬 삽질 포함.
기록만 쌓이면 안 본다
1·2편으로 폰 알림이 노션 가계부에 자동으로 쌓이게 됐다. 근데 줄만 쌓이면 결국 안 본다. 이번 달 얼마 썼고 얼마 모았는지가 한눈에 보여야 계속 보게 된다.
그래서 노션 Budget 페이지에 요약을 자동으로 그렸다. 이게 이 프로젝트에서 내가 제일 자주 보는 화면이다.
결과부터 — 매달 이렇게 그려진다
거래가 들어올 때마다 서버가 노션 코드블록 하나를 다시 그린다. (숫자는 예시)
📊 2026년 X월 가계부
수입 +0원
실지출 -540,000원
순저축 -540,000원
[지출]
식비 ██████████████████ 180,000원 (33%)
교통 ████████·········· 95,000원 (18%)
카페 █████············· 60,000원 (11%)
📸
순저축·저축률·카테고리별 지출이 매달 자동으로 갱신된다. 손댈 게 없다.
숫자를 어떻게 계산하나
핵심은 유형별로 다르게 더하는 거다. 정산으로 받은 돈은 내 지출이 아니라 빼고, 부채상환은 소비가 아니라 저축의 일부로 본다.
if ttype == "이체": continue # 자기이체 등은 통계 제외
elif ttype == "수입": income += amt
elif ttype == "정산입금": settlement += amt # 남이 정산으로 준 돈
elif ttype == "부채상환": debt += amt # 소비 아님(저축의 일부)
else: expense += amt # 지출/취소
# 실지출 = expense - settlement
# 순저축 = income - 실지출
데이터가 실제로 바뀌었을 때만 다시 그린다. 안 그러면 노션 블록이 계속 깜빡인다.
sig = _summary_signature(agg, title)
if _summary_sig.get(page_id) == sig:
return # 값이 안 바뀌면 노션을 건드리지 않는다
요약을 다시 그릴 때도 지우는 건 요약 블록뿐이다. DB나 다른 페이지는 절대 안 건드리게 막아뒀다. 자동화가 남의 데이터를 날리면 안 되니까.
분류는 코드가 아니라 노션에서
처음엔 “스타벅스 → 카페” 규칙을 코드에 하드코딩했다. 근데 자주 가는 가게가 바뀔 때마다 코드 고치고 재배포하는 게 번거로웠다.
→ 노션에 “카테고리 규칙” DB를 만들어 키워드→카테고리를 거기서 관리한다. 서버가 주기적으로 읽어온다. 이제 코드 안 건드리고 노션에서 분류를 바꾼다. 고정비/변동비 같은 성격도 여기서 덮어쓴다.
📸
기간을 내 맘대로 — 동적 기간 통계
“6월 1일~15일만 보고 싶다” 같은 걸 하려고 “기간 통계” DB를 만들었다. 행에 시작일·종료일만 넣으면 그 기간 요약이 행 본문에 자동으로 채워진다.
📸
📸
5분 폴링은 너무 굼떠서 20초마다 감시하는 워치 루프로 바꿨다. 행이 추가되거나 날짜가 바뀐 행, 진행 중인 기간만 다시 계산한다.
is_open = end[:10] >= today # 오늘까지 포함 = 진행중 기간
changed = _period_seen.get(page_id) != (start, end)
if not (changed or is_open):
continue # 안 바뀐 과거 기간은 건너뜀
노션 push 웹훅은 자체서명 인증서라 못 써서, 짧은 폴링으로 이벤트처럼 흉내 냈다.
삽질 한 스푼 — 한글은 칸이 안 맞는다
막대그래프 라벨을 공백으로 맞춰 정렬하려 했는데, 노션 코드블록 폰트에서는 한글 한 글자가 공백 두 칸과 정확히 안 맞는다. 표시폭을 직접 계산해 패딩해도 미세하게 삐뚤빼뚤했다.
표로도 만들어 봤지만 코드블록이랑 통일감이 떨어졌다. 결국 라벨을 왼쪽에 둔 코드블록으로 돌아왔다. 완벽한 정렬은 폰트 한계라 일부는 그냥 감수했다.
결과 & 회고
- 돈 쓰면 몇 초 안에 노션 가계부에 자동 기록.
- 이번 달 순저축·저축률·카테고리별 지출이 노션에서 바로 보인다.
- 분류 규칙은 노션에서 내가 직접 관리.
- 서버 비용 0원, 집 PC 도커.
✅ 평생 가계부 한 번 안쓰던 내가 하루에도 몇 번씩 노션에 들어가서 가계부를 확인하고 기록하게 됐다.
다음 개선
- 카테고리가 많아질 때의 요약 가독성
- 예산 대비 초과 경고
- 새 카드·은행 알림 형식 대응 (이건 영원한 숙제ㅠㅠ)
이 시리즈는 개인 프로젝트 기록이다. 코드/구조는 계속 바뀔 수 있다.




댓글
익명 댓글입니다. 닉네임과 내용이 저장되며, 서로 존중하는 표현을 부탁드려요. 부적절하거나 광고성 댓글은 예고 없이 삭제될 수 있습니다.