[AI워케이션1기곡성] 비개발자의 3박4일 가계부 자동화 완주기

비개발자가 AI로 5일 만에 '내 가계부 앱'을 만들고 미분류를 55%→14%로 줄인 전 과정

돈과 동전으로 가득 찬 깔때기가 있는 컴퓨터 화면의 3d 렌더링

🧩 이 글은 5일에 걸친 가계부 자동화 프로젝트(기획 2일 + 구현 3일)의 전 과정을 하나로 묶은 완주기입니다. 코드는 한 줄도 직접 짜지 않았고, 전부 AI(Claude Code)와 대화하며 만들었습니다.

📝 한줄 요약

흩어진 카드·간편결제·계좌 내역을 한곳에 모아 "내 규칙대로" 자동 분류하는 개인 가계부 앱을, 개발자가 아닌 제가 AI와 5일 만에 만들었습니다. 시중 앱이 62%나 미분류로 두던 제 거래를, 최종적으로 미분류율 55.7% → 13.8%까지 줄였습니다.

바쁘시면 이것만 읽어도 돼요:

  • 문제를 뾰족하게 좁혔다 — "가계부의 진짜 난제는 예쁜 화면도 분류 알고리즘도 아니라 ①데이터 수집"이고, 미분류의 정체는 간편결제가 가게 이름을 가린 '정보 부재'였다

  • AI를 코드 짜는 손이 아니라 문제를 같이 분해하는 사고 파트너 + 실데이터 검증기 + 여러 명처럼 나눠 일하는 구현팀으로 썼다

  • 핵심 설계는 "AI가 자동 확정하지 않고, 제안만 하면 내가 승인" — 정확성과 자동화를 둘 다 잡은 안전장치

  • 암호화된 카드 명세서 복호화, 네이버페이 영수증 버튼 한 번 자동 수집까지 브라우저 자동화로 해결

  • 결과물은 데모가 아니라 매일 쓰는 실제 앱(수집 4소스 자동화, 테스트 173개 전부 통과)

  • 이 방법은 가계부만이 아니라 "흩어진 데이터를 모아 내 기준으로 반복 분류하는" 모든 업무에 그대로 옮길 수 있다 (아래 재사용 프롬프트 6종)

🎯 이런 분들께 도움돼요

  • 시중 가계부·지출 관리 앱의 분류가 답답해서 내 규칙대로 만들고 싶은 분

  • 여기저기 흩어진 내 데이터(주문내역·영수증·거래처)를 한곳에 모아 자동 정리하고 싶은 비개발자

  • Claude Code 같은 AI로 아이디어부터 완성된 도구까지 끝까지 가보고 싶은 입문자

  • AI에게 분류·정리를 시키되 틀린 걸 자동 반영하는 게 불안한 실무자


😫 문제 상황 (Before) — 문제를 뾰족하게 좁히기

물음표가 붙은 신용카드

제 지출은 신용카드, 체크카드, 네이버페이, 계좌이체로 흩어져 있습니다. 뱅크샐러드 같은 앱이 모아주긴 하는데 두 가지가 늘 불만이었어요. 첫째, 분류를 제 맘대로 못 바꿉니다. 둘째, 1년치를 열어보면 62%가 "미분류"로 떠 있었습니다.

처음엔 "분류 알고리즘을 잘 만들면 되겠지" 생각했는데, AI와 문제를 뜯어보니 완전히 달랐습니다. 가계부 자동화를 ①수집 → ②분류 → ③집계 세 단계로 쪼개보니, ②분류와 ③집계는 사실 쉬운 문제였어요. 진짜 난제는 ①수집 하나였습니다.

그리고 더 파고드니, 골칫거리였던 "분류"마저 사실은 수집 문제였습니다. 미분류로 뜨던 거래의 정체는 —

네이버페이
당근페이
인터넷쇼핑몰결제(HI-POINT)
인터넷상거래_(네이버 현대카드)
위 사용 내역을 어떻게 정확히 알수 있지?

"뭘 샀는지" 정보 자체가 데이터에 없었습니다. 네이버페이로 3만 6천 원을 썼다는 건 나오는데, 그게 책인지 옷인지 영양제인지는 어디에도 안 적혀 있었죠. 간편결제(PG)가 실제 가게 이름을 가려버린 겁니다. 이건 아무리 똑똑한 분류기를 만들어도 못 푸는, "알고리즘 문제가 아니라 정보 부재 문제"였습니다.

그래서 목표가 명확해졌습니다. 똑똑한 분류기를 만드는 게 아니라, (1) 빠진 가게 이름을 다른 데서 찾아오고, (2) 찾아온 걸 내 규칙으로 분류하는 두 가지였습니다.

🛠️ 사용한 도구

  • 메인 도구: Claude Code (터미널에서 대화하며 실제로 파일을 열고 분석하고 코드를 짜주는 AI)

  • 모델: Claude Opus

  • 외부 연동: 네이버 지역검색 API(가게 업종 조회) · 무료 AI(Google Gemini, 그 외 업종) · 브라우저 자동화(Playwright — 카드 명세서 복호화, 영수증 자동 수집)

  • 보조: Codex(앱 아이콘·이미지 생성)

  • 특이사항코드는 한 줄도 직접 안 썼습니다. AI에게 문제를 분해시키고, 실데이터를 까보게 하고, 잘게 쪼개 구현시켰습니다. 비밀번호·API 키는 채팅에 절대 넣지 않고 별도 파일로 분리했습니다.


🔧 작업 과정 — 5일간의 전 과정

전체를 5일로 나눠, 실제 대화 순서대로 풀어봅니다.

1일차 — 기획: AI를 '사고 파트너'로 문제를 분해하다

테이블에 앉아 있는 남자와 로봇

첫날은 코드 없이 문제만 뜯었습니다. AI를 답을 주는 기계가 아니라, 문제를 같이 분해하는 상대로 썼어요.

prd를 읽어보면 분류와 집계는 사실 기술적으로 크게 문제가 되지 않을것 같아 수집의 문제를 해결하고 싶어

이 한마디로 프로젝트의 중심축이 잡혔습니다. "수집이 진짜 난제"라는 결론과 함께, "수집의 불가능한 삼각형"(자동화·정보량·개인 접근성을 동시에 만족할 수 없음)이라는 개념까지 AI와 함께 도출했습니다. 한국 금융 API는 개인이 못 쓰고, 스크래핑은 위험하다는 것도 이때 정리했죠.

핵심은 "코드부터 짜지 말고, 문제를 끝까지 좁히는 데 AI를 쓴 것"입니다.

2일차 — 검증: 추측 대신 실데이터를 AI에게 까보게 하다

책상 위에 메시지가 적힌 노트북

설계도를 그리기 전에, "이 수집이 진짜 되는지"를 실제 제 데이터로 검증했습니다. 뱅크샐러드에서 1년치 엑셀을 받아 AI에게 열어보게 했어요.

작업 이어서 시작

AI가 1,761건을 직접 파싱해서 구조를 분석했습니다. 그리고 여기서 채널마다 되는 게 다 다르다는 걸 하나씩 확인했어요. 카드사 앱엔 진짜 가게 이름이 살아있었고(뱅크샐러드가 넘겨받으며 뭉갠 것), 네이버페이만은 카드사에서도 "네이버"로만 보였습니다. 막힌 줄 알았던 맥(Mac)의 문자 데이터를 우회로로 열어보니 —

신한 해외승인 110달러 CLAUDE.AI

가게 이름·금액·시각이 그대로 다 있었습니다. 뱅크샐러드가 "인터넷쇼핑몰결제"로 뭉갠 바로 그 정보의 원본이었죠. 네이버페이는 문자가 아니라 영수증 조회 엑셀에 상품명·금액·시각이 있었고, 뱅크샐러드 내역과 결제 시각(초 단위)으로 1:1 매칭된다는 것까지 6건 전부 검증했습니다.

마지막으로 제가 전체 그림을 제안했습니다.

그럼 뱅샐 엑셀을 기준으로 신한 현대카드의 내용 및 네이버 페이 내용으로 대치해서 뱅셀 엑셀을 기준으로 하면 어떨까?

뱅크샐러드는 모든 거래가 빠짐없이 들어있으니 "기준"으로 삼고, 뭉개진 가게 이름만 카드 문자·영수증에서 가져와 채운다— 이 구조가 확정됐습니다. "전부 모으는 일"과 "정확한 이름을 채우는 일"을 각각 잘하는 데이터에 맡긴 거죠.

3일차 — 구현: 하루 만에 돌아가는 앱을 만들다

그래프와 돈이 포함된 컴퓨터 화면의 3d 렌더링

드디어 구현. 여기서 AI 활용의 핵심 기법이 나옵니다. "큰 작업을 여러 개의 작은 조각으로 쪼개, AI가 하나씩 완성하고 스스로 검증하게" 하는 방식(Subagent-Driven)을 골랐어요.

1번 Subagent-Driven으로 진행해줘

AI가 전체를 13개 조각으로 쪼갠 뒤, 각 조각을 완성하고 → 테스트를 돌려 통과를 확인하고 → 다음으로 넘어갔습니다. 마치 여러 명의 개발자가 한 조각씩 맡아 끝내고 합치는 것처럼요. 반나절 만에 수집 → 자동 분류 → 대시보드 → 규칙 관리까지 하나의 앱으로 완성됐습니다(27번의 저장).

이 앱에서 제가 가장 원했던 건 "내 맘대로 분류 규칙 만들기"였습니다. 미분류 거래 하나를 "카페"로 지정하면, 그 자리에서 규칙이 만들어지고 과거의 같은 거래들까지 전부 소급 자동 분류됩니다. "노가다 한 번 = 영구 자동화"인 셈이죠.

"오!" 한 순간은 AI가 자기 코드를 다시 검토하다 위험한 버그를 스스로 잡은 겁니다. 새 규칙이 기본 내장 규칙까지 실수로 덮어쓸 수 있는 구조였는데, "이건 심각한 문제"라고 스스로 표시하고 고쳤어요. 혼자 짰다면 몰랐을 함정이었습니다.

막혔던 순간도 있었습니다. 다 만들고 나서 정작 제가 못 썼거든요.

만든앱의 사용을 어떻게 해야할지 모르겠어

파일을 올렸는데 화면에 안 떠서 헤맸는데, 데이터가 다른 달에 들어가 있던 거였어요. AI가 "업로드하면 데이터 있는 최신 달로 자동 이동"하게 고쳐줬고, 그제서야 1년치가 쫙 떴습니다. 또, 특정 카드가 어느 순간부터 데이터에서 빠지는 "구멍"을 앱이 먼저 경고하도록 만들었습니다("이 카드 요즘 거래가 확 줄었어요").

4일차 — 확장: 검색 API·AI·카드 명세서로 미분류를 공략하다

로봇의 버튼을 누르는 손의 3d 그림

앱은 돌아가는데 미분류가 여전히 수백 건이었습니다. 하나씩 검색해 분류하다 문득 물었어요.

우선 미분류 항목에 대해서 가맹점을 기준으로 웹서치로 찾아서 카테고리를 정해주고
이것을 서비스적으로 구현하다면 api를 연결해서 해야하나?

여기서 이 프로젝트에서 가장 중요한 설계 결정이 나왔습니다. 검색 API로 40개를 테스트해보니, 짧은 가게 이름이 엉뚱한 곳에 매칭되는 함정이 있었어요. 그대로 자동 반영했다면 오분류가 쏟아졌을 겁니다. 그래서 —

AI/검색이 "이건 아마 카페일 거예요"라고 제안 배지만 띄우고, 제가 클릭해 승인하면 그제서야 분류되고 규칙으로 승격되는 구조로 잡았습니다. 자동화의 편함과 사람의 판단을 둘 다 가져간 거죠. 동네 가게는 네이버 지역검색 API가, 교육·투자·온라인처럼 검색에 안 나오는 건 무료 AI(Gemini)가 제안하게 했는데, 핵심은 같은 "제안→승인" 구조를 두 소스에 그대로 재사용한 겁니다.

카드 할부 결제는 원본 명세서를 봐야 했는데, 그 파일이 비밀번호로 암호화돼 있었습니다.

보안 파일이라고는 하지만 내 생년월일이라 api키처럼 비공개에 깃허브에 공유가 되지 안도록 생년월일 6자리만 저장해서 사용하면 안되나?

AI가 분석해보니 그 암호화는 내 컴퓨터 안에서만 풀리는(서버로 안 보내는) 방식이었어요. 그래서 브라우저 자동화로 비밀번호를 안전하게 자동 입력해 명세서를 열고 진짜 가게 이름을 끌어왔습니다(비밀번호는 채팅이 아니라 별도 파일에 저장).

실패담도 있었습니다. 기능 테스트용 가짜 데이터에 실제 제 거래를 그대로 복사해 넣었다가, AI 검토가 "심각한 개인정보 유출 위험"으로 잡아냈어요. 급히 전부 익명 처리했습니다. 테스트 데이터는 반드시 지어낸 값으로 — 편하다고 실제 데이터를 복사하면 어딘가에 남습니다. 이날 미분류를 20%까지 줄였습니다.

5일차 — 완성: 마지막 수동 작업을 없애고, 성과를 숫자로

마지막 남은 수동 작업(네이버페이 영수증을 매달 손으로 받기)을 없앴습니다.

대시보드 파일업로드에서 실행 ui 버튼을 만들어줘

AI가 브라우저를 자동 조종해 사이트 접속 → 기간 지정 → 엑셀 받기 → 앱 반영까지 대신하게 만들었어요. 처음엔 사이트가 "너 로봇이지?"라며 막았지만(봇 감지), 접속 방식을 진짜 브라우저처럼 조정하고 실제 화면에서 버튼을 하나씩 검증하며 뚫었습니다. 이제 버튼 한 번(또는 명령어 한 줄)에 12개월치가 무인 수집됩니다.

그리고 "미분류"의 정의를 다시 세웠습니다. 카드값 출금·본인 계좌 이체는 자동 딱지를 붙여 집계에서 빼고, 전세금 같은 큰돈은 "지출 아님" 버튼으로 제외했어요. "무엇을 지출로 볼 것인가"를 명확히 하니 통계가 진짜 제 소비를 반영하게 됐습니다.

이 프로젝트를 사람들에게 발표해야 했기에, 가장 공들인 건 성과를 숫자로 만드는 일이었습니다.

그 후로 각 과정마다 미분류율이 얼마나 줄었는지도 다시 계산해줘
계산은 수동의 경우 로컬api및 ai 제안을 했을때를 가정을하고 그리고 네이버페이 내용도 추가해서 계산해야지

두 가지를 계산했어요. ① 실제로 분류된 결과(55.7% → 13.8%)와, ② "내가 손으로 한 걸 AI·검색에 맡겼다면 어땠을까"라는 반사실 계산. 덕분에 "이만큼은 사람 없이 자동으로 잡혔고, 약 5%p(95건)는 사람의 맥락이 꼭 필요했다"가 선명하게 나왔습니다. 두루뭉술한 "많이 좋아졌어요"가 아니라 단계별 숫자로 증명한 거죠.

실패담 하나 더 — AI 제안을 돌리다 갑자기 멈췄는데, 무료 AI(Gemini)가 "무제한"이라 광고돼 있었지만 실제로는 하루 20번이 한도였습니다(직접 부딪혀 확인). "무료"의 진짜 조건은 광고가 아니라 써봐야 안다는 걸 배웠어요.


✅ 결과 (After) — 데모가 아니라 매일 쓰는 앱

휴대전화가 있는 그래프의 3D 그림

Before vs After

항목

Before

After

형태

시중 앱 + 답답함

내 컴퓨터에서 매일 쓰는 개인 앱

분류

내 맘대로 못 바꿈 · 62% 미분류

지정 1번 → 규칙화 → 과거 소급

미분류율

55.7%

13.8% (단계별로 감소)

가게 이름

간편결제가 가림

카드 문자·영수증·명세서로 복구

영수증 수집

매달 손으로 다운로드

버튼 한 번 · 12개월 무인 수집

데이터 구멍

나도 모르게 지출 누락

앱이 먼저 경고

성과 측정

"많이 좋아짐"(감)

반사실 계산으로 숫자 증명

결과물의 완성도 (실제로 쓸 수 있는가)

  • 수집 4소스 자동화: 뱅크샐러드(백본) + 신한/현대 카드 명세서 + 네이버페이 영수증 자동 수집

  • 분류 2단 제안: 네이버 지역검색 + Gemini AI → 배지 승인 → 규칙 자동 승격·소급

  • 안정성: 자동 테스트 173개 전부 통과 · 실거래 유입 사고를 AI 검토로 차단·익명화

  • 데모용이 아니라 제 실제 1년치 지출을 돌리는 도구입니다.

💬 이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. AI를 코드 짜는 손이 아니라 "사고 파트너"로 먼저 쓴다. 이틀을 문제 분해에 썼더니, 구현이 하루로 끝났습니다.

  2. 추측하지 말고, 실제 데이터를 AI에게 까보게 한다. "엑셀 열어서 뭐가 들었는지 보여줘"가 어떤 가정보다 정확했습니다.

  3. 큰 걸 잘게 쪼개 시키고, 만든 걸 다시 검토시킨다. AI가 자기 코드를 비판적으로 보게 하면 위험한 버그를 스스로 잡습니다.

  4. AI 제안은 "자동 실행"이 아니라 "사람이 승인하는 초안"으로. 정확성과 자동화를 둘 다 가집니다.

  5. 성과를 반사실로 증명한다. "AI 없이 했다면?"을 계산하면 가치가 숫자로 보입니다.

이렇게 하면 안 돼요

  1. 한 번에 다 시키지 않기. 통째로 시키면 어디서 틀어졌는지 알 수 없습니다.

  2. AI가 자동으로 확정하게 두지 않기. 짧은 이름이 엉뚱하게 매칭되는 함정이 실제로 있었습니다.

  3. 테스트에 실제 데이터 복붙 금지. 개인정보가 코드 이력에 남습니다.

  4. 비밀번호·API 키를 채팅에 넣지 않기. 반드시 별도 파일로 분리하세요.

  5. 무료 서비스의 "무제한"을 믿지 않기. 한도는 직접 부딪혀 확인하세요.

🌍 다른 업무에 적용한다면? — 그대로 옮기는 플레이북

길 위에 있는 휴대전화의 3D 그림

이 프로젝트는 "가계부"였지만, 뼈대는 "흩어진 데이터를 모아 내 기준으로 반복 분류·정리하는 모든 업무"에 그대로 적용됩니다. 다섯 가지 패턴으로 정리했습니다.

  1. 흩어진 데이터 통합 + 내 규칙 자동 분류 — 여러 쇼핑몰 주문내역 취합, 거래처별 영수증 정리, 고객 문의 유형 분류. "한 번 지정하면 규칙이 되어 다음부터 자동"이 되게 만드세요.

  2. 기준(SSOT) + 보강(enrich) 분리 — 완전한 원본 하나를 "기준"으로 두고, 빠진 정보만 다른 소스에서 채웁니다. "전부 모으기"와 "정확히 채우기"를 각각 잘하는 데이터에 맡기는 것.

  3. AI 제안 → 사람 승인 — 문서 태깅, 데이터 분류, 초안 작성 어디든. AI가 판단하되 최종 확정은 사람이 클릭 한 번으로.

  4. 브라우저 자동화로 반복 수집 제거 — 매달 여러 사이트에서 자료를 손으로 받는 일을 버튼 하나로.

  5. 반사실로 성과 증명 — 자동화 효과를 보고할 때 "안 썼다면 얼마나 걸렸을지"를 숫자로 만들면 설득력이 생깁니다.

핵심 한 줄: "코드부터 짜지 말고, ① 문제를 뾰족하게 좁히고 → ② 실데이터로 검증하고 → ③ 잘게 쪼개 AI에게 시키고 → ④ AI 제안을 사람이 승인하는" 순서. 이건 개발이 아니라 일하는 방식입니다.

🚀 앞으로의 계획

남은 미분류(사람의 맥락이 꼭 필요한 약 5%)를 다듬고, 매달 자동으로 갱신되게 만들 계획입니다. 무엇보다 이 경험 자체가 — 비개발자도 AI와 함께라면, 막막한 아이디어에서 매일 쓰는 도구까지 5일이면 간다는 증거가 됐습니다. 다음엔 이 뼈대를 다른 반복 업무에도 옮겨볼 생각입니다.

📋 재사용 가능한 프롬프트 (복붙해서 바로 쓰세요)

프롬프트 1: 문제를 뾰족하게 좁히기

지금 [겪는 문제 — 예: 데이터 정리가 오래 걸림]를 해결하고 싶어. 코드부터 짜지 말고, 이 문제를 단계로 쪼개서 어디가 진짜 병목인지, 그게 알고리즘 문제인지 정보(데이터) 문제인지 근본 원인부터 진단해줘.

프롬프트 2: 추측 대신 실데이터로 검증하기

이 [파일/데이터]를 열어서 어떤 항목이 있고 샘플이 어떻게 생겼는지 보여줘. 그리고 [하려는 일]에 이 데이터를 쓸 수 있는지, 부족한 정보는 없는지 분석해줘.

프롬프트 3: 큰 작업을 잘게 쪼개 시키고 자기검토까지

[만들 것]을 한 번에 다 하지 말고, 작은 작업 단위로 쪼개서 하나씩 완성하고 테스트로 검증한 뒤 다음으로 넘어가는 방식으로 진행해줘. 다 만든 뒤엔, 처음 보는 깐깐한 리뷰어의 눈으로 위험한 부분을 심각도별로 다시 검토해줘.

프롬프트 4: AI 제안을 "승인제"로 안전하게 쓰기

[분류할 항목]을 AI가 자동으로 확정하지 말고, "이건 아마 ○○일 거예요"라고 제안만 하게 해줘. 내가 클릭해 승인하면 그때 반영되고, 다음부터 자동 적용되는 규칙으로 만들어줘.

프롬프트 5: 반복 수집을 브라우저 자동화로

[사이트]에서 [데이터]를 매번 손으로 받는데, 브라우저 자동화로 대신 받게 해줘. 실제 화면에서 어떤 버튼을 눌러야 하는지 검증하면서 정확도를 높여줘.

프롬프트 6: 자동화 성과를 숫자로 증명

[작업]을 각 단계별로 적용하면서 [지표]가 얼마나 개선됐는지 단계별로 계산해줘. "내가 수동으로 한 부분을 AI에 맡겼다면 어땠을지"도 가정해 반사실 비교로 정리해줘. 발표용이야.

※ 모든 프롬프트의 [대괄호] 부분은 본인 상황에 맞게 바꿔서 쓰세요. 비밀번호·API 키는 채팅에 넣지 말고 별도 파일에 저장하는 걸 잊지 마세요.

3
5개의 답글

뉴스레터 무료 구독