AI 분류 기능을 갖춘 스마트 지출 추적기 만들기
요약
Python과 LLM을 활용하여 은행 거래 내역을 자동으로 카테고리화하는 스마트 지출 추적기 구축 가이드를 제공합니다. 수동 분류의 번거로움을 해결하고 AI를 통해 일관성 있고 확장 가능한 지출 관리 시스템을 만드는 방법을 다룹니다.
핵심 포인트
- Python과 OpenAI API를 이용한 지출 내역 자동 분류 구현
- 규칙 기반 시스템의 한계를 극복하는 AI의 유연한 예외 처리 능력
- CSV/Excel 데이터를 구조화된 카테고리로 변환하는 워크플로우
- 환경 변수를 활용한 안전한 API 키 관리 방법
AI 분류 기능을 갖춘 스마트 지출 추적기 만들기
tags: python, ai, finance, tutorial
아마도 여러분은 은행 CSV 파일을 다운로드하여 "Uber", "Starbucks", "Amazon"과 같은 200줄의 내역을 빤히 바라보며 다음과 같은 의문을 가져본 적이 있을 것입니다: 이 중 무엇이 실제로 "식비"이고 무엇이 "교통비"일까? 지출 내역을 수동으로 분류하는 것은 지루하고, 일관성이 없으며, 솔직히 말해 여러분의 두뇌 에너지를 낭비하는 일입니다. 하지만 약간의 Python과 AI 모델만 있다면, 모든 거래 내역을 정확하고 즉각적으로, 그리고 오늘 바로 사용할 수 있도록 적절한 카테고리로 자동 분류하는 **스마트 지출 추적기 (smart expense tracker)**를 구축할 수 있습니다.
이 가이드에서 여러분은 다음과 같은 기능을 수행하는 작동 가능한 지출 분류기를 만들게 됩니다:
- 은행 CSV 또는 Excel 파일 읽기
- 거래 내역 설명을 LLM (OpenAI의 GPT와 같은)으로 전송
- 각 행에 대해 구조화된 카테고리 반환
- Excel, Google Sheets 또는 회계 소프트웨어에 가져올 수 있는 깔끔하게 분류된 파일로 내보내기
화려한 앱도, 구독 서비스도 필요 없습니다. 단지 몇 분 안에 실행할 수 있는 코드만 있으면 됩니다.
왜 AI 분류가 수동 분류보다 뛰어난가
수동 분류는 주관적이기 때문에 실패합니다. 어떤 사람은 "Uber"를 _교통비 (Transportation)_라고 부르고, 다른 사람은 _통근 (Commute)_이라고 부릅니다. AI는 수천 개의 거래 내역에 일관된 규칙을 적용함으로써 이러한 모호함을 제거합니다.
더 중요한 것은 AI는 확장 가능하다는 점입니다. 50개의 거래 내역이든 5,000개든 동일한 노력으로 분류할 수 있습니다. 그리고 경직된 규칙 기반 시스템 (예: "if merchant = 'Uber' → Transportation")과 달리, AI는 예외 상황을 처리합니다: "Uber for Business"는 _업무 출장 (Work Travel)_일 수 있지만, "Uber Eats"는 _식비 (Food)_일 수 있습니다.
그 결과는 무엇일까요? 코드를 다시 작성할 필요 없이 여러분의 소비 패턴에 적응하는 **동적이고 스스로 개선되는 분류기 (dynamic, self-improving categorizer)**를 얻게 됩니다.
환경 설정
코드를 작성하기 전에 세 가지가 필요합니다:
merchant,description,amount,date와 같은 열이 포함된 은행 거래 파일 (CSV 또는 Excel)- LLM API 키 (OpenAI, Anthropic 또는 기타 호환 가능한 제공업체)
- 다음 패키지가 포함된 Python 3.8+
pip install pandas openai
OpenAI를 사용하는 경우, openai.com에서 등록하여 API 키를 생성하고 안전하게 보관하세요. 스크립트에 키를 직접 하드코딩(hardcode)하지 말고, 반드시 환경 변수(environment variables)를 사용하세요:
export OPENAI_API_KEY="your-secret-key-here"
핵심 Python 코드: 하나의 스크립트로 구현하는 완전 자동화
지출 내역을 읽고, AI로 분류하며, 결과를 내보내는 완성된 작동 스크립트는 다음과 같습니다:
import pandas as pd
import os
from openai import OpenAI
...
다음 명령어로 스크립트를 실행하세요:
python expense_tracker.py
몇 초 안에 Excel, Google Sheets 또는 QuickBooks로 가져올 수 있는 categorized_transactions.csv 파일이 준비됩니다.
더 스마트하게 만들기: 퓨샷 러닝(Few-Shot Learning)과 신뢰도 점수
기본 스크립트도 작동하지만, 문맥(context)을 추가하면 더 정확하게 만들 수 있습니다. 단순히 설명 하나만 보내는 대신, 이미 분류된 거래 내역의 예시를 몇 개 포함하세요(이를 _퓨샷 러닝 (few-shot learning)_이라고 합니다).
프롬프트(prompt)를 예시를 포함하도록 업데이트하세요:
EXAMPLES = [
{"desc": "Uber ride to airport", "cat": "Transportation"},
{"desc": "Starbucks coffee", "cat": "Food & Dining"},
...
이 방식은 특히 모호한 가맹점(merchant)에 대해 정확도를 크게 향상시킵니다.
기업용으로 사용할 경우, AI에게 신뢰도 점수 (confidence score) (높음/중간/낮음)를 반환하도록 요청하고, 중간 또는 낮은 신뢰도의 항목은 사람이 검토하도록 분류할 수도 있습니다. 이는 현대적인 AI 지출 워크플로우 [6]에서 설명하는 방식과 정확히 일치합니다.
스크립트에서 완전한 앱으로: 다음 단계
이 스크립트는 여러분의 기초가 됩니다. 이를 실제 앱으로 전환하려면 다음을 수행하세요:
- UI 추가:
streamlit또는gradio를 사용하여 사용자가 CSV를 업로드하고 즉시 결과를 확인할 수 있는 웹 인터페이스를 만드세요. - 카테고리 영구 저장: 사용자 정의 카테고리 목록을 JSON 파일에 저장하여 사용자가 "헬스장 멤버십"이나 "반려동물 용품" 등을 추가할 수 있도록 하세요.
- 자동화: cron 또는 GitHub Actions를 통해 스크립트를 매주 실행하여 새로운 은행 내역 내보내기 파일을 자동으로 처리하세요.
- 시각화:
matplotlib또는plotly를 사용하여 카테고리별 지출을 그래프로 그려 트렌드를 파악하세요.
심지어 이를 Glide 또는 Airtable과 통합하여 AI 백엔드 (AI backend)를 트리거하는 노코드 (no-code) 프론트엔드를 구축할 수도 있습니다 [2][4].
이것이 일상생활에서 중요한 이유
AI의 혜택을 누리기 위해 데이터 과학자 (data scientist)가 될 필요는 없습니다. 이 스크립트는 다음과 같은 이점을 제공합니다:
- 시간 절약: 더 이상 30분 동안 수동으로 분류하는 작업이 필요 없습니다.
- 일관성: 모든 "Uber" 항목이 동일한 방식으로 처리됩니다.
- 통찰력 (Insight): 즉각적인 카테고리별 합계를 통해 지출 누수 지점을 파악할 수 있습니다.
- 제어권: 블랙박스 (black-box) 알고리즘 없이 사용자가 직접 카테고리를 정의합니다.
또한 오픈 소스 (open-source) Python이므로 영구적으로 수정할 수 있습니다. 새로운 카테고리를 추가하거나, 모델을 변경하거나, 은행 API에 연결할 수 있습니다.
오늘 바로 시작하기: 첫 번째 카테고리 분류 CSV
"완벽한" 앱을 기다리지 마세요. 최신 은행 CSV 파일을 가져와 위 스크립트를 실행하면 5분 안에 지출 내역이 자동으로 분류되는 것을 확인할 수 있습니다.
실행 단계 (Call to action):
- 거래 내역을 CSV 형식으로 다운로드합니다 [7]
- 코드를
expense_tracker.py에 붙여넣습니다. - 실행한 후
categorized_transactions.csv를 엽니다.
다음 커피 휴식 시간이 오기 전에 스마트한 지출 추적기를 갖게 될 것입니다. 데이터가 얼마나 깔끔하게 정리되는지 확인하고 나면, 다시는 수동 분류로 돌아가지 못할 것입니다.
개인 금융의 미래는 더 많은 앱이 아니라, 더 스마트한 자동화 (automation)입니다. 그리고 당신은 방금 그것을 직접 만들었습니다.
이 글이 도움이 되었다면, 커피 한 잔을 사주세요 ☕ — 이 글들이 계속 발행되는 데 큰 힘이 됩니다!
또한 저의 AI 도구 모음도 확인해 보세요: AI 次元世界 — 개발자를 위한 무료 AI 도구들입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기