zoeylog
zoeylog
About me
조이의 연습장 (Blog)
이미지 아카이브
우주고양이
Sign In
조이의 연습장 (Blog)

가계부에 카드 긁으면 자동으로 기록되는 시스템 만들기

조이
Apr 25, 20262m ago
카테고리
  1. 자동화
"카드 긁으면 알아서 적힌다고?"
가계부를 씁니다. 쓰긴 쓰는데, 매번 수기로 입력하는 게 너무 귀찮아요.
저는 구글 스프레드시트로 가계부를 관리합니다. 월별 시트에 날짜, 대분류, 소분류, 내역, 금액, 결제수단을 한 줄씩 적어요. 매일 쓰는 걸 기록하는 건 좋은 습관이지만, 솔직히 하루 9건 결제하고 6열씩 54칸을 손으로 채우는 건 습관이 아니라 노동입니다.
조이해빗
가계부 스프레드시트, 시간관리 템플릿, 노션 투두 시스템으로 일상과 재무를 효율적으로 관리하는 방법을 제안합니다. 돈관리·루�‹´Â·ìƒ�산성ì�„ 한 번ì—� 잡는 실전 템플릿 브랜드, ì¡°ì�´í•´ë¹—.
zoeyhabit.com
그래서 돈냥이한테 맡겼습니다. 돈냥이는 저희 AI 에이전트 팀에서 투자 자문위원 역할을 하는 에이전트예요. 투자 자문위원이 왜 가계부를? 지출을 파악해야 투자할 여력도 보이니까요.

첫 번째 설계 — 이메일로 받으면 되지 않을까

처음 돈냥이가 제안한 설계는 이랬습니다. 카드사 결제 알림을 이메일로 받고, Gmail에서 Google Apps Script로 파싱해서 구글시트에 자동으로 기입하는 방식. 깔끔했어요. 서버 사이드라 폰 OS에 상관없고, Apps Script는 무료니까요.
그런데 실제로 확인해보니 현대카드와 신한카드는 이메일 결제 알림을 보내지 않았습니다. 3개 중 2개가 안 되면 이 방식은 성립 불가. 설계는 가정 위에 서고, 가정은 검증 전까지 가정일 뿐이라는 걸 다시 한번 느꼈어요.

피벗 — SMS와 Mac의 만남

카드사가 공통으로 제공하는 건 SMS 결제 알림입니다. 문자는 세 카드사 다 보내요.
문제는 저는 아이폰을 쓴다는 거예요. iOS에서 문자를 프로그래밍적으로 읽는 건 불가능합니다. 애플이 허용하지 않아요. 여기서 막힐 뻔했는데, 한 가지 우회로가 있었습니다. 저는 Mac도 씁니다. iPhone과 Mac 사이에 iMessage/SMS 동기화를 켜두면, 문자가 Mac의 chat.db라는 SQLite 데이터베이스에 저장돼요.
경로가 보였습니다. SMS → Mac chat.db → Python 파싱 → Google Sheets API → 가계부 자동 기입. iOS의 벽을 Mac으로 우회하는 아이디어였어요.

구현 — 3개 모듈

돈냥이가 만든 시스템은 파일 세 개로 구성됩니다.
첫 번째는 parse_sms.py. Mac의 chat.db에서 현대카드 결제 문자를 읽어서 파싱합니다. 발신번호 15776200으로 필터링하고, "7,400원 일시불 / 04/22 12:43 / 현대백화점판교" 같은 문자를 날짜, 금액, 가맹점으로 분리해요. 마지막으로 처리한 메시지 위치를 기억해서 중복 처리도 방지합니다.
두 번째는 daily_check.py. 매일 크론으로 실행되는 체크 스크립트예요. 새 결제 내역을 확인하고 Slack 메시지로 포맷합니다. "어제/오늘 현대카드 결제 9건이에요!" 하면서 목록을 보내줘요. 제가 "1. 택시 2. 점심 3. 커피" 형식으로 답하면 각 결제에 내역이 매칭됩니다.
세 번째는 sheets.py. Google Sheets API로 가계부 시트에 기입하는 모듈입니다. 서비스 계정으로 인증하고, 월별 시트의 날짜·내역·금액·결제수단 열에 맞춰 데이터를 추가해요.
근데 간혹, 가맹점명만 써 있으면 어디에 쓴 건지 헷갈릴 때가 있잖아요. 그래서 AI가 결제 내역을 읽고 Slack으로 알려주면, 사람이 "뭐에 쓴 건지"만 한 줄 답하게 만들었어요. 가맹점명이 "백화점"라고 떠도 그게 점심인지 커피인지는 AI도 모릅니다. 사람의 판단이 필요한 부분만 사람이 하고, 나머지는 자동.

실전 — 오늘 돌아간 결과

오늘 돈냥이 크론이 돌면서 현대카드 결제 9건을 감지했습니다. Slack의 #32-moneysheet-family 채널에 알림이 왔어요. 테슬라 충전 3,729원, 인스파이어 리조트에서 키즈카페, 점심, 커피, 슬라임카페 등. 제가 각 건에 내역을 답하니까 구글시트에 자동 기입 완료.
수기 입력이었으면 9건 × 6열 = 54칸을 직접 타이핑해야 했습니다. 지금은 한 줄 답변이면 끝이에요.
가계부 자동화는 단순히 귀찮은 일을 없앤 게 아닙니다. 돈의 흐름을 구조화하는 첫 걸음이에요. 투자 자문위원 돈냥이가 가계부를 맡은 건, 지출을 모르면 투자를 논할 수 없기 때문입니다. 오늘 얼마 썼는지 아는 것부터가 시작이에요.
zoeylog
'zoeylog' 구독하기
사이트를 구독하면 새 포스트 등 최신 업데이트를 알림과 메일로 가장 먼저 받아보실 수 있습니다.
Slashpage에 가입하고 'zoeylog'을 구독하세요!
구독
👍
3