Claude Code로 지출 분석 가계부 만드는 방법

Claude Code로 지출 분석 가계부 만드는 방법

Claude Code로 지출 분석 가계부 만드는 방법

매달 어디에 돈을 썼는지 확인하느라 머리 아픈 시간을 줄여봅니다

오늘 만들 것
매달 어디에 돈을 썼는지 확인하느라 머리 아픈 시간을 줄여봅니다

매달 카드 고지서가 도착할 때마다 "대체 돈을 어디에 쓴 거지?" 하며 내역을 하나씩 훑어본 적이 많을 겁니다. 은행 앱이나 핀테크 서비스에 연결해 두면 자동으로 가계부가 적히기도 하지만, 내 개인 신용 정보나 상세 결제 내역이 플랫폼 기업으로 넘어가는 점이 찝찝하게 느껴질 수 있습니다. 이 글에서는 인공지능 코딩 비서를 활용해 내 스마트폰에 온 결제 문자를 복사해 붙여넣기만 하면, 로컬에서 지출을 분석하고 다크 테마 웹 대시보드로 자동 분류해 주는 가계부 에이전트를 만들어 봅니다.

코딩 문법을 전혀 몰라도 문제없습니다. CLI의 컨텍스트 파일 자동 인지 기능과 터미널 내 실행 도구를 활용하면, 몇 줄의 대화만으로 바로 작동하는 가계부 파이프라인이 완성됩니다. 로컬에서 가동되므로 추가 요금 걱정도 없고, 5분 안에 첫 화면 대시보드를 눈으로 확인하게 됩니다.

개인 정보 유출 없이 로컬에서 파싱 처리를 수행하는 이유

개인 정보 유출 없이 로컬에서 파싱 처리를 수행하는 이유

이 가계부의 장점은 외부 API 연동 없이 텍스트 로그만으로 파싱 처리가 해결된다는 점입니다. 스마트폰에 수신된 승인 내역을 하나의 텍스트 파일(card_sms.txt)로 모아두면 분석할 준비가 완료됩니다. 스크립트가 데이터를 한 줄씩 읽어 날짜, 사용처, 금액을 분류하고 카테고리 태그를 매겨주는 방식입니다.

이 과정에서 터미널용 AI 비서의 파일 참조 기능이 빛을 발합니다. 대화창에 대상 파일을 지정해 텍스트 형식을 직관적으로 학습시키면, 까다로운 정규표현식을 직접 작성하지 않아도 됩니다. 윈도우나 맥 OS 등 터미널이 지원되는 환경이라면 어디서든 구동이 가능합니다.

터미널에서 Claude Code를 실행해 5분 만에 지출 분석 환경 세우기

터미널에서 Claude Code를 실행해 5분 만에 지출 분석 환경 세우기

작업을 시작하려면 로컬 PC에 프로젝트 폴더를 생성한 뒤 터미널에서 Claude Code를 실행하여 기본 구조를 잡습니다. AI에게 현재 폴더에서 가계부 에이전트를 구축하겠다고 요청하면 코딩부터 검증까지 순차적으로 진행해 줍니다.

1
작업 폴더를 만들고 도구 실행하기

컴퓨터의 명령 프롬프트나 파워셸 창을 열고 아래 명령어를 차례로 입력해 폴더를 생성하고 도구를 실행합니다.

AI에게 보낸 프롬프트
mkdir expense-tracker cd expense-tracker claude

도구가 실행되면 다음 요청 사항을 전달합니다. "이 폴더의 카드 승인 문자 목록 파일(@card_sms.txt)을 파싱해서 사용처와 금액을 추출하고 식비, 교통, 마트, 문화 카테고리로 자동 분류해 주는 스크립트를 짜줘. 결과는 HTML 대시보드(index.html)와 CSV 파일(report.csv)로 저장해 줘." 지시를 수락하면 비서는 폴더 구조를 확인하고 코드를 작성해 나갑니다.

표준 파이썬으로 구현하는 지출 분석 에이전트 소스코드

파이썬에 기본 내장된 파일 입출력과 정규표현식 라이브러리를 활용해 구현한 분석 프로그램의 핵심 코드입니다. 외부 라이브러리 의존성 없이 즉시 가동할 수 있어 무척 깔끔합니다.

2
외부 모듈 없는 단일 파이썬 코드 작성하기

에이전트가 작성한 파이썬 스크립트입니다. 텍스트 파일을 읽어 정해진 분류 사전을 대조한 뒤, 지출 데이터를 요약한 HTML 파일과 분석용 CSV 파일을 저장합니다.

import re
import json
import os

DEFAULT_SMS = """
[신한체크] 06/20 12:30 배민_한식 15,000원 승인
[KB국민] 06/20 13:10 스타벅스 5,600원 승인
[하나카드] 06/19 19:45 이마트 45,200원 승인
[신한체크] 06/19 08:20 카카오T_택시 12,000원 승인
[KB국민] 06/18 20:30 CGV영화관 24,000원 승인
""".strip()

def parse_and_analyze(sms_path, html_path, csv_path):
    if not os.path.exists(sms_path):
        with open(sms_path, 'w', encoding='utf-8') as f:
            f.write(DEFAULT_SMS)
        print('기본 테스트 문자 파일 생성 완료: ' + sms_path)

    with open(sms_path, 'r', encoding='utf-8') as f:
        content = f.read().strip()

    lines = content.split('\n')
    records = []
    categories = {
        '식비': ['배민', '요기요', '스타벅스', '맥도날드', '식당'],
        '교통': ['택시', '카카오T', '버스', '지하철', '주유'],
        '마트/쇼핑': ['이마트', '홈플러스', '쿠팡', '다이소'],
        '문화/여가': ['CGV', '롯데시네마', '넷플릭스', '교보문고']
    }

    total_amount = 0
    category_sums = {}

    for line in lines:
        if not line.strip():
            continue
        match = re.search(r'\[(.*?)\]\s*(\d{2}/\d{2})\s*(\d{2}:\d{2})?\s*(.*?)\s*([\d,]+)원\s*승인', line)
        if match:
            card, date, time_, merchant, amount_str = match.groups()
            amount = int(amount_str.replace(',', ''))
            
            assigned_cat = '기타'
            for cat, keywords in categories.items():
                if any(kw in merchant for kw in keywords):
                    assigned_cat = cat
                    break
            
            records.append({
                'card': card,
                'date': date,
                'merchant': merchant,
                'amount': amount,
                'category': assigned_cat
            })
            total_amount += amount
            category_sums[assigned_cat] = category_sums.get(assigned_cat, 0) + amount

    csv_lines = ['날짜,카드사,사용처,금액,카테고리']
    for r in records:
        csv_lines.append(f"{r['date']},{r['card']},{r['merchant']},{r['amount']},{r['category']}")
    with open(csv_path, 'w', encoding='utf-8-sig') as f:
        f.write('\n'.join(csv_lines))

    cat_list_html = "".join([f"
  • {cat}: {sum_:,}원
  • " for cat, sum_ in category_sums.items()]) rows_html = "".join([f"{r['date']}{r['card']}{r['merchant']}{r['amount']:,}원{r['category']}" for r in records]) html_content = f""" 지출 분석 가계부 대시보드

    지출 요약 대시보드

    총 지출

    {total_amount:,}원

    카테고리별 요약

      {cat_list_html}
    {rows_html}
    날짜카드사사용처금액카테고리
    """ with open(html_path, 'w', encoding='utf-8') as f: f.write(html_content) print("지출 분석 완료! report.csv 와 index.html 이 생성되었습니다.") if __name__ == '__main__': parse_and_analyze('card_sms.txt', 'index.html', 'report.csv')

    코드 내에는 텍스트를 파싱하기 위해 파이썬 표준 라이브러리인 re(정규표현식)와 os만 사용했습니다. 이를 통해 로컬 환경에서 충돌 오류 없이 가볍고 안전하게 구동됩니다. 코드 생성이 완료된 후에는 실행 명령어로 스크립트를 즉시 동작해 결과를 확인하는 흐름입니다.

    CLAUDE.md로 카테고리 정의와 포맷팅 제약을 고정하기

    분석 로직이 매번 정상 작동하고 결과물 레이아웃이 흐트러지지 않게 하려면, 비서가 지켜야 할 분석 제약과 규칙을 명시하는 방법이 유용합니다. 프로젝트 폴더에 설정 파일을 만들어 가이드라인을 남겨 두면, 수정 작업을 반복 수행하더라도 대시보드의 다크 테마 디자인과 천 단위 콤마 표기 규칙이 안정적으로 보존되는 효과가 있습니다.

    3
    CLAUDE.md 규칙 파일에 가계부 제약 설정하기

    폴더에 아래의 내용을 담아 규칙 파일을 작성하여 보관합니다.

    AI에게 보낸 프롬프트
    # Expense Tracker Guide
    - 카드 사용 문자 포맷: `[카드사] 날짜 사용처 금액 승인` 순서 준수할 것.
    - 가계부 대시보드는 모던한 다크 테마 디자인 규격을 깨지 말 것.
    - 금액 출력 시 항상 세 자리 천 단위마다 콤마(,)와 '원' 단위를 붙여 포맷팅할 것.
    - 스크립트 실행 명령어: `python analyze_expenses.py`

    가이드 파일이 추가되면, 나중에 해외 결제 건에 대한 환율 계산 기능을 덧붙이더라도 기존에 정한 대시보드 테이블 구조와 텍스트 포맷 규칙을 흔들지 않고 유연하게 코드를 확장하게 됩니다.

    파싱 오류가 발생할 때 대처하는 방법

    스마트폰 기종이나 통신사에 따라 카드 승인 문자 형식은 제각각 다르게 나타납니다. 따라서 정규식 파싱 과정에서 예외가 생기면, 식을 무리하게 확장하기보다 try-except 예외 처리 구문을 추가해 매칭되지 않은 줄을 '미분류 승인건'으로 넘기는 방향이 관리에 한층 수월합니다.

    요약 대시보드로 이달의 총 지출액을 직관적으로 확인하기

    모든 코드와 가이드라인 세팅이 완료되었다면, 이제 터미널 창에서 최종 스크립트를 구동하고 생성된 HTML과 CSV 리포트를 조회할 단계에 들어섭니다. 스크립트 실행과 대시보드 생성이 정상적으로 마무리되었는지 터미널을 통해 실시간으로 확인이 이루어집니다.

    4
    로컬에서 분석 스크립트를 실행하고 결과 파일 확인하기

    터미널에 아래 구문을 입력해 스크립트를 실행하고 결과물을 출력하여 저장합니다.

    AI에게 보낸 프롬프트
    python analyze_expenses.py
    index.html

    실행이 완료되면 파일 탐색기나 터미널을 이용해 `index.html` 파일을 실행하고 웹 브라우저로 확인 작업을 수행합니다.

    정상 작동 확인과 사후 활용

    정상적으로 처리가 끝나면 화면에 깔끔한 다크 테마 대시보드가 브라우저에 나타납니다. 입력한 문자 내역들이 날짜와 카테고리별로 일목요연하게 정리되어 합산 금액이 정교하게 표시되는 형태입니다. 동시에 생성되는 report.csv 파일은 엑셀이나 구글 스프레드시트에 업로드해 추가적인 가공이나 차트 분석에 활용하기 편리합니다.

    스마트폰 가계부 앱에 개인 정보나 은행 계좌 데이터를 매번 연동하는 보안 부담을 덜고 싶을 때, 이 로컬 지출 분석 프로그램은 훌륭한 선택지입니다. 내 컴퓨터에서 검증 가능한 간단한 파이썬 스크립트 하나로 지출을 정리하고 대시보드를 추출해 주는 안전한 자산 도우미를 손수 구축해 보는 기회가 될 것입니다.

    관련 검색어

    • 🔍 AI 가계부 사용법
    • 🔍 AI 가계부 비교
    • 🔍 지출 분석 사용법
    • 🔍 지출 분석 비교
    • 🔍 Claude Code 사용법
    • 🔍 Claude Code 비교

    댓글 쓰기

    다음 이전