배경 — 결혼 후 둘이 가계부를 정리하면서, 매달 반복되는 고정비·구독료를 손으로
추적하는 게 번거로워 우리 두 사람의 소비 패턴에 맞춘 전용 대시보드를 직접 만들었습니다.
- 파서 레지스트리 설계 — 은행/카드사별로 CSV 포맷이 제각각인 문제를, 공통 인터페이스(base parser)
+ 은행별 구현(KB카드 전용 파서, 범용 CSV 매핑 파서)으로 분리해 신규 금융사 추가 시 파서만 추가하면 되는 구조로 설계했습니다.
- 학습형 자동 분류 엔진 — 키워드 규칙 기반으로 거래를 자동 분류하고, 사용자가 직접 카테고리를
수정하면 그 피드백을 우선순위가 높은 규칙으로 승격(upsert)시켜 이후 동일 가맹점은 자동으로 분류되도록 구현했습니다.
- 정기결제 자동 탐지 알고리즘 — 거래 설명에서 숫자·특수문자를 제거해 정규화한 뒤, 발생 횟수·
금액 변동률(±15%)·결제일 변동(±5일)을 기준으로 패턴을 클러스터링해 정기결제 후보를 자동 탐지하고, 등록대기 → 등록
상태로 관리합니다.
- 예산 추천 & 월간 리뷰 — 최근 3개월 평균 지출 기반 카테고리별 예산 추천, 전월 대비
증감·예산 초과 항목·순자산 변동을 자동 요약하는 월간 리뷰 생성 로직을 구현했습니다.
- 순자산 추적 — 계좌 잔액 스냅샷과 거래 잔액을 결합해 특정 시점의 자산/부채/순자산을
역산하는 서비스를 구현했습니다.
PythonFastAPISQLAlchemy
AlembicPandasReact
TypeScriptViteSQLite
Docker / Caddy
성과 — 본인과 배우자가 실제로 매월 사용 중. CSV 업로드 한 번으로 분류·정기결제·예산
점검까지 자동화되어 기존에 수기로 하던 월말 가계부 정리 과정을 대체했습니다.