결제 내역만으로, 품목까지

그래서, 뭘 산 거였지?

명세서는 가맹점 이름으로 답해요. Moa는 품목으로 답해요 — 금액과 가맹점, 그리고 나의 습관으로. 그래서 지난달을 읽을 수 있고, 뭐가 진짜 비싸졌는지 볼 수 있고, 커피 잔 수로 세는 목표를 지킬 수 있어요.

앱 열기브라우저에서도 바로 쓸 수 있어요: app.moa.money

Moa 앱의 결제 화면.

8:42
결제
달빛다방 연남점
8월 26일 (화) · 오전 8:42 · 카드 ·· 4417
₩9,700
무엇을 샀나
오트 라떼 (L) + 아몬드 크루아상
74%
카푸치노 + 햄치즈 크루아상
19%
그 밖의 조합
7%
맞아요수정하기
결제가 들어오면, 품목이 나와요

은행이 보내는 것. Moa가 돌려주는 것.

은행이 보내는 대로
달빛다방연남점
8월 26일 (화) · 오전 8:42품목 미확인
₩9,700

설명 문자열 하나, 금액, 시각, 카테고리 코드. 다른 앱은 모두 여기서 멈춰요.

Moa가 돌려주는 대로
오트 라떼 (L)₩5,500
아몬드 크루아상₩4,200
부가세 · 10% 포함(₩882)
결제 금액과 정확히 일치₩9,700
확신도 74%다른 조합 2개도 가능

품목과 가격, 그리고 얼마나 확신하는지. 영수증 사진은 한 장도 쓰지 않았어요.

무엇을 위한 건가

카테고리로는 답할 수 없는 세 가지 질문.

품목 자체가 상품은 아니에요. 품목이 있어야 비로소 이 질문들에 답할 수 있을 뿐이에요.

01기억하기

14일에 결제한 ₩36,500, 뭐였지?

삼 주가 지나면 가맹점 이름만으로 저녁 한 끼를 되살릴 수 있는 사람은 없어요. Moa는 메뉴와 가격, 그리고 얼마나 확신하는지를 돌려줘요 — 그래서 짚이지 않던 결제가 기억나는 저녁이 돼요.

고향밥상 마포점
8월 14일 (목) · 오후 7:36
₩36,500
비빔밥₩9,500
순두부찌개₩9,000
해물파전₩16,000
사이다₩2,000
부가세 · 10% 포함(₩3,318)
추론 · 68%합계 확인됨

장바구니는 확인하기 전까지 제안일 뿐이에요. 어느 쪽인지는 칩이 말해 줘요.

왜 다른 곳엔 없나

은행이 보내는 건 설명 문자열이 전부예요. 카테고리를 보여 주는 앱이 품목을 숨기는 게 아니에요 — 갖고 있지 않은 거예요.

02체감 물가

전보다 더 내고 있는 걸까?

나라의 물가가 아니라 — 나의 물가. Moa는 내가 실제로 사는 것들을, 실제로 사는 개수만큼, 그때와 지금의 가격으로 다시 계산해요.

나의 체감 물가
≈ +6.1%3월 이후

같은 장바구니가 3월 가격으로는 ₩211,900, 8월 가격으로는 ₩224,800이에요.

오트 라떼 (L) ×34₩5,200 → ₩5,500
아몬드 크루아상 ×9₩3,900 → ₩4,200
확인한 구매만

3월 가격의 내 장바구니와 오늘의 같은 장바구니. 날짜가 붙은 메뉴 가격은 영수증이 아니라 근거이기 때문에, 비율에는 ≈가 붙어요.

왜 다른 곳엔 없나

나만의 물가 지수에는 품목과 단가가 필요해요. 어떤 국가 지수도 한 사람에 관한 게 아니고, 카테고리 합계로는 가격 인상과 두 번째 방문을 구별할 수 없어요.

03지킬 수 있는 목표

커피 열다섯 잔, 지킬 수 있을까?

원으로 정한 예산은 따지고 드는 숫자예요. 개수로 정한 예산은 눈에 보이는 셈이에요: 열다섯 잔 중 열한 잔, 네 잔 남음, 그리고 오늘 뭐가 더해졌는지 알려 주는 저녁 한 줄.

품목 예산 · 8월
커피
11 / 15
이번 달 네 잔 남음
하루 정산 · 오후 8:30

오늘 커피 두 잔, 둘 다 달빛다방에서. 이번 달 열한 잔.

누적 금액은 일부러 보여 주지 않아요. 지금까지 쓴 돈이 실시간으로 보이면 사람들은 더 쓰게 되니까, Moa는 대신 개수를 세요.

왜 다른 곳엔 없나

개수를 세려면 무엇을 샀는지 알아야 해요. 지출 한도는 지나고 나서야 잴 수 있지만, 개수는 다음 한 잔 전에 확인할 수 있어요.

왜 다른 방법은 아닌가

품목에 이르는 네 갈래 길, 그리고 길마다 가로막은 벽.

업계가 품목 단위 내역을 사람에게 전하는 방법은 네 가지예요. 저마다 누군가에게서 무언가를 받아야 해요. 이건 판정이 아니라 구조예요 — 모든 줄을 직접 확인할 수 있어요.

가맹점 계정 하나를 긁어오기
Copilot × Amazon
가맹점 하나뿐이고, 세션이 살아 있는 동안만이에요. 세션이 만료되면 조용히 끊겨요.
영수증을 읽기
영수증 스캔, 이메일 파싱, 포인트 패널
영수증이 존재해야 하고, 닿을 수 있어야 하고, 내가 직접 처리해야 해요. 패널 앱은 사진에 포인트를 주지만, 찍는 건 여전히 사용자의 일이에요.
가맹점 망을 기다리기
Amex Digital Receipts, Visa Order Insight, Mastercard Ethoca
참여하기로 한 가맹점만이에요. 영국의 매장 영수증 네트워크는 정확히 그 셈법 때문에 문을 닫았어요.
SKU 네트워크를 사기
Banyan, Cardlytics · Bridg
기업에 팔리는 것이고, 나에게는 맞춤 광고로 닿아요 — 내가 산 것의 목록으로는 결코 오지 않아요.
결제에서 추론하기
Moa
가맹점에게도, 나에게도 요구하는 게 없어요. 결제는 이미 도착했으니까요.

어떻게 되나

01

명세서 가져오기

은행이 주는 명세서 파일을 그대로 가져와요. 무엇을 들여올지는 내가 골라요.

02

Moa가 결제마다 무엇을 샀는지 제안해요

확신도가 붙은 장바구니를 순서대로 — 그리고 충분히 맞는 게 없으면 솔직하게 모른다고 해요.

03

한 번 탭하면 확인되고, 더 정확해져요

나의 수정이 나만의 기준을 쌓아요. 평균 손님이 아니라, 내가 늘 시키는 것을 배워요.

엔진

AI보다 먼저, 산수

세금 역산, 팁 분해, 실제 메뉴 가격에 대한 정확한 합계 탐색은 정수 연산으로 정확히 계산해요. 한국 메뉴 가격에는 부가세가 이미 들어 있으니 역산할 것 없이 결제 금액 그대로 탐색해요. 전에 확인한 내용이 어느 장바구니가 더 그럴듯한지에 무게를 더해요. 언어 모델은 영수증과 내가 적은 글을 읽을 뿐 — 계산을 맡기는 일은 없어요.

계산 예시
청구된 결제 금액₩9,700
가격에 이미 든 부가세 · 10%(₩882)
설명해야 할 금액₩9,700
정확한 합계 탐색 · 정수 최소 단위
9700 = 5500 + 4200
오트 라떼 (L)₩5,500
아몬드 크루아상₩4,200

이 메뉴에서 정확히 합이 맞는 장바구니는 하나뿐이에요. 여럿일 때는 나의 확인 기록이 어느 쪽이 더 그럴듯한지 가려요 — 덧셈을 추측하는 일은 없어요.

한아름마트 성수점
8월 23일 (토) · 오전 11:04품목 미확인
₩128,340
장바구니 — 품목 미확인

이 금액에 맞는 품목 조합이 너무 많아요. Moa는 대신 하나를 골라 주지 않아요.

그래도 보증하는 것
  • 카테고리 · 식료품
  • 합계 · 정확함₩128,340
  • 품목 · 알 수 없음
알 수 없을 때

불확실함에 솔직하게

모든 답은 하나의 자신 있는 추측이 아니라 확률 분포예요. 수천 가지 품목 조합이 한 결제에 맞을 때 — 이를테면 장을 크게 본 날 — 앱은 영수증을 지어내는 대신 정확히 그렇다고 말하고, 그래도 보증할 수 있는 것들을 함께 보여 줘요.

점선 테두리는 언제나 ‘모른다고 밝힌 것’을 뜻해요. 앱 어디서나 같은 표시이고, 우리가 가장 자랑스러워하는 표시예요.

나만의 기준

한 번의 탭마다, 나에게서 배워요

예측 하나를 확인하거나 고치면 그 가맹점에서의 다음 추론이 모두 더 정확해져요. 나의 수정이 나만의 기준을 쌓아요 — 앱은 평균 손님이 아니라 내가 늘 시키는 것을 배워요.

이전 · 첫 방문
오트 라떼 (L) + 아몬드 크루아상
34%
카푸치노 + 햄치즈 크루아상
33%
그 밖의 조합
33%

다른 장바구니 둘이 1점 차이로 붙어 있어요. 메뉴 말고는 기댈 게 없어요.

한 번의 탭
확인 한 번 뒤
오트 라떼 (L) + 아몬드 크루아상
91%
카푸치노 + 햄치즈 크루아상
6%
그 밖의 조합
3%

이제 이 가맹점에서도, 길 건너 가게에서도 내가 늘 시키는 것이 앞서요.

개인정보

구조로 지키는 개인정보

구조적으로 가명처리

어떤 추론이 실행되기 전에 나의 신원은 불투명한 가명으로 바뀌어요. 엔진은 이름, 이메일, 계좌번호를 결코 받지 않아요.

프롬프트에는 식별자가 없어요

모델 프롬프트에는 가맹점, 금액, 후보 품목이 담겨요. 내가 누구인지는 결코 담기지 않아요.

데이터로 학습하는 업체는 쓰지 않아요

제출된 데이터로 학습하는 것을 금지하는 조건의 모델 업체하고만 일해요. 조건을 확인할 수 없는 서비스는 쓰지 않아요.

그리고 우리는 ‘익명’이 아니라 ‘가명처리’라고 말해요. 구매 내역은 본래 사람을 식별하는 것이고, 안심시키기보다 정확하고 싶으니까요.

개인정보 처리방침 전문 읽기
질문

의심스러운 것부터

영수증 없이 어떻게 알 수 있죠?

금액, 가맹점, 시각, 공개된 메뉴와 가격 정보, 그리고 내가 전에 확인한 기록으로요. 세금은 역산하고 팁은 정수 연산으로 정확히 분해해서 설명해야 할 소계를 남기고, 탐색이 그 소계에 정확히 합이 맞는 장바구니들을 찾아요. 그다음 나의 확인 기록이 그중 어느 장바구니가 나에게 더 그럴듯한지에 무게를 더해요.

내 은행 비밀번호를 보나요?

아니요. Moa는 비밀번호를 묻지 않아요 — 명세서 파일은 은행이 내보내고 내가 건네는, 이미 갖고 있는 파일이에요. 거래 내역 자체는 우리 서버에 가명으로 보관되고, 그래서 앱을 다시 설치해도 내역이 남아요 — 그 옆에 결코 저장되지 않는 것은 이름, 이메일, 은행 인증 정보예요.

틀리면 어떻게 되나요?

한 번 탭해서 고쳐요. 수정은 그 거래와 함께 가명으로 저장되고, 그 가맹점에서의 다음 추론은 더 정확해져요 — 앞으로의 예측을 더 낫게 만드는 건 나의 확인이에요.

지난달을 모르는 이름이 아니라, 아는 것들로 보세요.

앱 열기또는 여기서 열기: app.moa.money
티끌 모아 태산티끌이 모여 산이 돼요