은행 SMS 알림에서 금액과 가맹점 이름추출하기

평범한 소비 하루가 끝나면 휴대폰에는 은행 SMS 알림이 쌓입니다. 커피 한 잔, 점심값, 정기 구독, 주유소 결제까지. 각 알림에는 예산 관리에 실제로 필요한 정보가 정확히 두 가지 들어 있습니다. 바로 거래 금액과 가맹점 이름입니다. 그런데 Chase는 알림을 한 방식으로 작성하고, Bank of America는 다른 방식, Wells Fargo는 또 다른 방식, American Express는 네 번째 방식을 사용합니다. 금액이 문장에서 차지하는 위치도 발신 은행에 따라 달라집니다. 각 메시지를 예산 앱에 수동으로 입력하는 데는 메시지당 10~15초가 걸리며, 일주일치 거래를 처리하려면 그 시간이 매달 반복해야 하는 귀찮은 일로 쌓이게 됩니다.

수작업 입력은 그만 — AI가 대신 읽어드립니다
이미지나 PDF를 업로드하세요 — 10초 만에 정형 데이터로
지금 체험하기 →
블로그 히어로 이미지: 진한 남색의 굵은 제목 아래에 'Four Banks, One Batch, Custom Column Extraction, Rows Ready in Google Sheets'라고 표시된 세 개의 평면 벡터 아이콘이 있으며, 부드러운 오프화이트에서 연한 파란색 배경 위에 브랜드 블루 기하학적 라인 장식이 모서리에 배치되어 있습니다.

핵심 요약

  1. 미국 4개 은행이 동일한 $42.50 AMAZON.COM 구매를 알리지만, 달러 금액은 Chase에서는 단어 위치 3, Wells Fargo에서는 위치 6, Amex에서는 위치 2에 있습니다.
  2. 위치 기반으로 학습된 도구는 Chase에서는 작동하지만 Bank of America에서는 조용히 실패합니다. 다른 은행의 메시지 템플릿에는 해당 금액이 들어갈 문장 위치가 없기 때문입니다.
  3. 비전 AI는 메시지를 거래로 인식합니다. 대문자로 표시된 가맹점과 통화 기호 뒤의 금액을 찾아내며, 은행별 규칙 없이 네 가지 은행 형식을 한 번에 처리합니다.

같은 거래가 은행마다 다르게 보이는 이유

Chase, Bank of America, Wells Fargo, Amex에서 발송한 동일한 $42.50 AMAZON.COM 구매 내역이 담긴 SMS 알림 4건을 비교한 그림. 각 메시지에서 금액이 다른 위치에 주황색으로 강조되어 있으며, 하단에는 고정 위치 조회: 절반 누락(빨간 X)과 의미 읽기: 4건 모두 한 번에 인식(초록 체크)이라는 결과 행이 표시됩니다.

은행 SMS 알림은 기본 패턴(카드 식별자, 금액, 가맹점, 날짜)을 따르지만, 각 기관마다 배열 순서가 다릅니다. AMAZON.COM에서 $42.50 구매 시 은행별로 눈에 띄게 다른 메시지가 생성됩니다:

Chase

Chase: Purchase of $42.50 at AMAZON.COM on 03/15/2025 — Card ending 1234

Bank of America

BofA Alert: Debit card ending 1234 was used for $42.50 at AMAZON.COM on 03/15/2025

Wells Fargo

Wells Fargo: A purchase of $42.50 was made with your debit card at AMAZON.COM

American Express

AMEX: A charge of $42.50 was made on your Card ending 1234 at AMAZON.COM on Mar 15.

Chase 버전에서 금액은 콜론 뒤 세 번째 단어(of $42.50)입니다. Amex 버전에서도 앞쪽에 위치합니다. Wells Fargo 버전에서는 purchase of와 was made 사이에 있습니다. 각 메시지는 사람이 읽기에는 완벽하게 이해할 수 있지만, 은행마다 다른 문장 템플릿을 사용하기 때문에 금액이 텍스트에서 "이리저리 움직입니다". 가맹점 이름도 다양합니다: 일부 은행은 전체 법인명(AMAZON.COM)을 사용하고, 다른 은행은 줄여서 표기하며, 일부는 이름만으로 혼동이 생길 수 있는 경우 가맹점의 도시나 주를 포함하기도 합니다.

이러한 형식 차이는 단순 복사-붙여넣기 방식이 실패하는 핵심 이유입니다. 네 개의 다른 은행에서 알림 10건을 캡처하면 거의 모든 메시지에서 달러 기호가 다른 문자 위치에 나타납니다. "일반적인 위치"에서 달러 기호를 찾는 도구는 절반을 놓칠 수밖에 없습니다.

기존 OCR이 SMS 스크린샷에서 놓치는 것

기존 OCR(광학 문자 인식)은 문자와 숫자처럼 보이는 모양을 찾아 읽기 순서대로 모두 출력하여 텍스트를 읽습니다. $42.50이 가격이고 03/15/2025가 날짜라는 것은 이해하지 못합니다. 둘 다 같은 줄에 있는 문자열일 뿐입니다.

Two-column comparison: Traditional OCR returns the Chase SMS as one plain unhighlighted block of text marked with a red cross and the label A Block of Text, No Labels, while AI Data Extraction shows the same message with $42.50 highlighted in amber and AMAZON.COM in blue and returns Amount: $42.50 and Merchant Name: AMAZON.COM marked with a green tick.

깔끔하고 구조화된 문서(예: 인보이스)에서는 이러한 한계가 관리 가능합니다. 레이아웃 자체가 어떤 숫자가 무엇인지 알려주기 때문입니다 — 합계는 오른쪽 아래 셀에, 날짜는 “날짜:” 옆에 있습니다. 그러나 은행 SMS 알림에는 그러한 시각적 구조가 없습니다. 한두 문장일 뿐입니다. 달러 기호와 가맹점 이름이 구분선이나 라벨 없이 나란히 있습니다. OCR은 텍스트 블록을 반환하고, 어느 부분 문자열이 금액인지 직접 골라내도록 남겨둡니다.

“차이는 간단합니다. OCR은 문자열을 봅니다. 시각적 AI는 거래를 봅니다.”

이것이 OCR과 업계에서 AI 데이터 추출(또는 비전 기반 추출)이라고 부르는 것 사이의 경계가 기술적 차이를 넘어 실질적인 차이가 되는 지점입니다. 광학 문자 인식은 스크린샷에 어떤 문자가 나타나는지 알려줄 수 있습니다. 비전 언어 모델은 그중 어떤 문자가 거래 금액이고 어떤 것이 가맹점 이름인지 알려줄 수 있습니다.

시각 AI가 금액과 가맹점을 찾는 방법

비전 언어 모델은 왼쪽에서 오른쪽으로 스캔하며 모든 텍스트를 출력하는 대신, 사람이 보는 방식으로 스크린샷을 봅니다. 메시지를 읽고 맥락을 이해한 뒤(“이것은 은행 거래 알림이다”), 거래에 포함된다고 알고 있는 요소 — 금액(보통 달러 기호가 앞에 붙음), 가맹점 이름(보통 대문자이거나 “at” 뒤에 옴), 날짜 — 와 일치하는 부분을 식별합니다.

이것이 Custom Column Extraction이 기반으로 하는 원리입니다. 원하는 열을 정의하면 — 이 경우 금액과 가맹점 이름 — AI는 화면에서 보통 어디에 있는지 추측하는 것이 아니라 의미를 이해하여 해당 값을 찾아냅니다. 은행 SMS 알림에서 데이터를 추출하든, 테이블이 아닌 결제 스크린샷에서 추출하든, 한 번도 본 적 없는 형식의 인보이스에서 추출하든 동일한 원리가 적용됩니다. 각 은행의 형식에 맞춰 시스템을 “학습”시키거나 달러 기호가 나타나는 위치에 박스를 그려야 하는 템플릿 기반 도구와 달리, 의미 기반 추출은 Chase가 금액을 세 번째 단어에 넣든 Amex가 마지막 단어에 넣든 상관없이 작동합니다.

실질적인 효과: 동일한 두 열 구성(금액, 가맹점 이름)으로 Chase SMS, Bank of America SMS, Wells Fargo SMS, Amex SMS를 한 번에 처리할 수 있습니다. AI에게 “화면의 X 위치를 봐라”라고 말할 필요가 없습니다. 원하는 것을 말하면 AI가 찾아냅니다.

SMS 스크린샷에서 스프레드시트까지

SMS 스크린샷에서 스프레드시트까지라는 제목의 4단계 라인 차트형 흐름도: 번호가 매겨진 원형 노드들이 날카로운 각도의 파란색 폴리라인으로 연결되어 있으며, 스크린샷 업로드, 열 이름 지정, 추출 실행, 스프레드시트로 내보내기로 표시되고 마지막 노드에는 녹색 체크 배지가 있습니다.

SMS 알림 스크린샷 더미에서 데이터를 추출하는 작업 흐름은 이번 주 메시지 3개든 지난달 메시지 30개든 동일합니다.

1
스크린샷 업로드

카메라 롤, 갤러리 또는 다운로드 폴더에서 모든 SMS 알림 스크린샷을 선택합니다. 같은 은행이나 같은 카드일 필요는 없습니다. 업로드는 기본적으로 일괄 처리에 최적화되어 있습니다.

2
열 이름 지정

금액 및 가맹점 이름 열 두 개를 만듭니다. 이게 설정의 전부입니다. 출력 테이블에서 각 거래에 타임스탬프를 남기려면 날짜 열을 선택적으로 추가할 수 있습니다.

3
추출 실행

AI가 모든 스크린샷을 읽고, 각 SMS 알림에서 금액과 가맹점 이름을 식별하여 단일 테이블에 기록합니다. Chase, Amex, Wells Fargo, Bank of America 알림은 형식별 구성 없이 함께 처리됩니다.

4
내보내기 또는 직접 사용

결과를 Excel 파일로 다운로드하거나 사이드바 추가 기능을 사용하여 Google Sheets로 바로 보냅니다. 각 행은 SMS 알림 하나에 해당합니다: 첫 번째 열에는 금액, 두 번째 열에는 가맹점 이름, 세 번째 열에는 추가한 경우 날짜가 표시됩니다.

SMS 알림이 iPhone의 메시지 앱(채팅 풍선 스타일 사용), Android의 기본 SMS 앱(다른 카드 레이아웃 사용), 또는 이메일로 알림을 받는 경우 Gmail 스크린샷인 경우에도 동일한 방식이 적용됩니다. 시각적 AI는 컨테이너의 스타일에 의존하지 않으며, 텍스트 콘텐츠를 읽고 그 안의 거래 필드를 식별합니다.

SMS에 주문 번호 또는 추적 코드도 포함된 경우(예: 은행 알림과 주문 알림이 결합된 구매 확인 메시지), 동일한 원칙이 적용됩니다. 이 개념은 은행 알림에서 SMS 주문 확인으로 자연스럽게 전환되며, 여기서는 가맹점 이름 대신 배송 추적 번호를 추출하는 작업이 됩니다.

이 접근 방식이 다루지 않는 부분

SMS 스크린샷의 시각적 AI 추출은 핵심 필드를 잘 처리하지만, 알아두면 좋은 명확한 한계가 있습니다:

  • 스크린샷만 가능 — 이 방법은 캡처한 이미지에서 작동합니다. 휴대폰의 메시지 데이터베이스에서 SMS 메시지를 직접 읽지는 않습니다(SMS 권한이 있는 앱이 필요하며, 이는 완전히 다른 제품 범주입니다).
  • 메시지 크롭이 중요합니다 — 스크린샷에서 달러 기호가 잘리거나 가맹점 이름이 잘리면 AI는 보이는 부분만 처리할 수 있습니다. 전체 알림 텍스트가 보이도록 전체 높이 스크린샷을 찍는 것이 가장 좋은 결과를 제공합니다.
  • 비영어 알림 — 핵심 필드(금액 및 날짜)는 숫자가 보편적이므로 언어 간에 잘 전달됩니다. 스페인어 Chase 알림도 여전히 “Chase:”로 시작하고 달러 금액이 포함됩니다. 비영어권 시장의 지역 은행은 형식이 다를 수 있습니다.
  • 중첩된 알림 — 일부 휴대폰은 여러 SMS 알림을 단일 스크린샷으로 그룹화합니다. 네 개의 은행 알림이 함께 쌓인 잠금 화면 보기를 캡처하면 AI는 스크린샷 내에서 개별 금액과 가맹점을 계속 식별할 수 있습니다.

자주 묻는 질문

체크카드와 신용카드 알림 모두에서 작동하나요?

네. 대부분의 은행은 체크카드와 신용카드 거래 모두에 동일한 형식을 보냅니다. 알림 메시지 앞부분에 “체크카드” 또는 “신용카드”라고 표시될 수 있지만, 금액과 가맹점 이름은 카드 유형과 관계없이 동일한 상대적 위치에 나타납니다.

카드 구매가 아닌 은행 송금 또는 전신 송금 알림은 어떻게 하나요?

수신 전신 송금 및 ACH 송금 알림에도 가맹점 대신 금액과 송금인 이름이 포함됩니다. 동일한 맞춤 열 추출 설정이 작동합니다 — 두 번째 열을 “가맹점 이름”에서 “송금인 이름”으로 바꾸기만 하면 AI가 그에 따라 검색을 조정합니다.

한 번의 일괄 처리로 여러 은행의 알림을 처리할 수 있나요?

이 도구가 만들어진 시나리오가 바로 이것입니다. Chase, Bank of America, Wells Fargo 및 기타 은행의 스크린샷을 한 번에 업로드하세요. AI는 각 스크린샷을 독립적으로 읽고 어느 은행이 보냈는지 무시한 채 각 메시지에 올바른 금액과 가맹점 이름을 할당합니다.

업로드 전에 은행별로 스크린샷을 정렬해야 하나요?

아니요. 추출이 일괄 처리의 동질성에 의존하지 않기 때문에 정렬은 필요하지 않습니다. 일괄 처리 위치 #1의 Chase 알림과 일괄 처리 위치 #7의 Wells Fargo 알림은 동일하게 처리됩니다. 의미 있는 정렬은 시간순뿐이며, 추출 후 출력 스프레드시트의 날짜 열을 사용하여 수행할 수 있습니다.

은행 SMS 알림의 금액과 가맹점 이름은 일반 텍스트로 표시됩니다. 문제는 데이터에 접근할 수 없다는 것이 아니라, 은행마다 형식이 다르고 기존 추출 도구가 숫자의 의미를 이해하지 못한다는 점입니다. Visual AI는 메시지를 의미적으로 읽어 이러한 병목을 제거하며, 사용자가 읽는 것과 같은 방식으로 결과를 즉시 사용할 수 있는 테이블로 정리합니다.

📮 contact email: [email protected]