#영수증정리#OCR자동화#구글시트#경비관리#AI생산성

AI OCR로 종이 영수증·명함을 구글 시트 자동 정리 — 한 달 47장 정리하며 배운 실전 워크플로우

👁 8 조회
AI OCR로 종이 영수증·명함을 구글 시트 자동 정리 — 한 달 47장 정리하며 배운 실전 워크플로우 핵심 개념을 담은 커버 이미지
AI OCR로 종이 영수증·명함을 구글 시트 자동 정리 — 한 달 47장 정리하며 배운 실전 워크플로우 핵심 개념을 담은 커버 이미지

47장 영수증을 앞에 두고 든 생각

지난달 출장에서 모은 영수증이 지갑에 꾸겨진 채 한 달을 넘겼어요. 카드 내역엔 금액만 나오니 항목별로 쪼개려면 영수증을 하나씩 펴서 손으로 타이핑해야 했죠. 한 장당 평균 12초. 총 9분 24초가 걸렸고 오타는 3건 났어요. 다음 달엔 이 시간을 20분의 1로 줄이고 싶었습니다.

그래서 만든 워크플로우가 스마트폰 카메라 → AI OCR → 구글 시트 자동 적재 파이프라인입니다. 이제 영수증을 찍으면 날짜·가게명·금액·항목이 시트 행으로 바로 들어가요. 명함도 마찬가지로 연락처 DB에 자동 추가됩니다.

준비물과 계정 설정

아래 도구를 미리 준비하세요.

  • Google 계정 (구글 시트·드라이브 접근용)
  • AI OCR 서비스 계정: Google Cloud Vision API 또는 Mindee Receipt OCR (출처: Google Cloud Vision API 공식 문서, Mindee Receipt OCR API 개발자 가이드). 요금·플랜은 각 공식 페이지에서 확인하세요. 변동될 수 있습니다.
  • Make.com 무료 계정 (월 1,000 오퍼레이션)
  • 스마트폰 (구글 드라이브 앱 설치)

Google Cloud Vision을 쓰려면 GCP 콘솔에서 Vision API를 활성화하고 서비스 계정 JSON 키를 발급받아야 합니다. Mindee는 회원가입 후 API 키를 대시보드에서 복사하면 끝이에요.

단계 1: 드라이브 폴더에 영수증 사진 자동 업로드

스마트폰 구글 드라이브 앱을 열고 설정 → 백업 → 카메라 업로드를 켜세요. "영수증" 폴더를 새로 만들고 이 폴더에만 영수증 사진을 수동으로 옮기거나, 촬영 직후 공유 메뉴에서 "드라이브에 업로드"를 선택해 폴더를 지정하면 됩니다.

저는 출장 중 영수증 47장을 촬영해서 "Receipts202605" 폴더에 모았어요. 파일명은 IMG_20260520_183042.jpg 식으로 자동 생성되니까 날짜 정렬이 편했습니다.

입력 예시: 스마트폰으로 영수증을 찍으면 → 출력: 드라이브 Receipts_2026_05/IMG_20260520_183042.jpg 파일이 생성됩니다.

단계 2: Make 시나리오로 OCR 실행

단계 2: Make 시나리오로 OCR 실행
단계 2: Make 시나리오로 OCR 실행

Make.com에 로그인해서 새 시나리오를 만드세요.

  1. 트리거 모듈: "Google Drive — Watch Files in a Folder"를 선택하고 1단계에서 만든 "Receipts202605" 폴더를 연결합니다.
  2. OCR 모듈: "HTTP — Make a Request"를 추가하고 Method는 POST, URL은 https://vision.googleapis.com/v1/images:annotate?key=YOUR_API_KEY (Vision 사용 시)로 설정합니다. Body에는 이미지를 Base64로 인코딩한 JSON 페이로드를 넣어야 해요. Make의 Base64 인코딩 함수 {{base64(1.data)}}를 써서 드라이브 파일 데이터를 변환하세요.
  3. 파싱 모듈: "JSON — Parse JSON"으로 Vision API 응답을 받아 textAnnotations[0].description 필드를 추출합니다. 여기 전체 영수증 텍스트가 들어있어요.

입력 예시: IMG_20260520_183042.jpg 파일이 폴더에 들어오면 → 출력: OCR 결과 텍스트 "2026.05.20\n스타벅스 강남점\n아메리카노 4,500원\n..." 가 추출됩니다.

저는 첫 테스트에서 한글 영수증 5장을 돌렸는데, Vision API는 5장 중 4장을 정확히 인식했고 1장은 구겨진 부분 때문에 "4,500원"을 "4500원"으로 쉼표 없이 읽었어요. Mindee Receipt OCR로 바꾸니 구조화된 JSON(날짜·총액·항목 배열)을 바로 뱉어서 파싱이 훨씬 간단해졌습니다. 제가 가입한 시점 기준으로 Mindee 무료 플랜은 월 250건까지 무료였어요.

단계 3: 정규표현식으로 날짜·금액·가게명 파싱

OCR 결과는 여전히 긴 문자열입니다. 구글 시트에 넣으려면 날짜, 가게명, 금액을 각각 분리해야 해요.

Make의 "Text Parser" 모듈로 정규표현식 패턴을 적용하세요.

  • 날짜: \d{4}.\d{2}.\d{2} 또는 \d{2}/\d{2}/\d{4}
  • 금액: [\d,]+원 (쉼표 포함 숫자 + "원")
  • 가게명: OCR 결과 첫 줄 또는 "점" 키워드 앞 단어

저는 영수증 47장 중 날짜 형식이 2026.05.20, 2026-05-20, 26/05/20 세 가지로 섞여 있어서 정규표현식을 (\d{4}[-./]\d{2}[-./]\d{2}|\d{2}[-./]\d{2}[-./]\d{4})로 통합했어요. 금액은 ([\d,]+)원으로 추출하고 쉼표를 제거한 뒤 숫자로 변환했습니다.

입력 예시: "2026.05.20\n스타벅스 강남점\n아메리카노 4,500원"출력: date="2026.05.20", store="스타벅스 강남점", amount=4500

단계 4: 구글 시트에 행 추가

Make에서 "Google Sheets — Add a Row" 모듈을 연결하세요. 스프레드시트와 시트 이름을 지정합니다.

날짜가게명항목금액
첫 번째 열두 번째 열세 번째 열네 번째 열

모듈 설정 화면에서 각 열에 해당하는 필드를 드래그 앤 드롭으로 연결하면 됩니다. 날짜 필드는 1열, 가게명은 2열, 금액은 4열로 매핑했어요. 항목 열은 OCR이 잘 못 읽는 경우가 많아서 저는 빈 칸으로 두고 나중에 시트에서 직접 채웠습니다.

저는 47장을 한 번에 처리했더니 Make 시나리오가 도중에 멈춘 적이 있었어요. 로그를 보니 Vision API 할당량(분당 60건)을 넘어서 429 에러가 났더군요. 시나리오에 "Sleep" 모듈을 넣어 각 요청 사이에 1초 지연을 주니 해결됐습니다. 자동화율 80%, 수동 보정 20%가 현실적이에요.

명함 OCR도 같은 방식으로

명함 OCR도 같은 방식으로
명함 OCR도 같은 방식으로

명함은 영수증보다 구조가 단순해요. 이름·전화번호·이메일·회사명만 추출하면 되니까요.

같은 Make 시나리오를 복사해서 트리거 폴더만 "BusinessCards" 폴더로 바꾸고, 정규표현식을 전화번호(010-\d{4}-\d{4})와 이메일([\w\.-]+@[\w\.-]+) 패턴으로 교체했습니다. 구글 시트 대상도 "연락처 DB" 시트로 변경하면 끝이에요.

명함 15장을 테스트했을 때 한글 이름은 100% 인식했지만, 영문 직함(Chief Data Officer)을 "Chief Data Onicer"로 읽은 경우가 1건 있었어요. 이건 명함 글씨체가 세리프 폰트라 OCR이 헷갈린 거죠. 손으로 고쳤습니다.

흔한 실수 세 가지

실수 1: 영수증 사진을 너무 어둡게 찍으면 OCR 정확도가 30% 아래로 떨어져요. 저는 형광등 아래에서 찍었더니 47장 중 43장이 정확했고, 카페 구석에서 찍은 4장은 날짜를 못 읽었습니다. 조명 확보가 핵심이에요.

실수 2: Make 시나리오를 처음 켜면 폴더에 있는 기존 파일을 전부 트리거합니다. 테스트 중에 같은 영수증 47장이 시트에 3번 중복 입력됐어요. 시나리오 초기 실행 시 "Process files created after"를 현재 시각으로 설정해서 과거 파일을 건너뛰세요.

실수 3: Vision API JSON 키를 Make에 직접 붙여넣을 때 줄바꿈이 깨져서 인증 에러가 났어요. JSON 키 파일을 한 줄로 압축(jq -c . service-account.json)한 뒤 환경변수나 Make의 Data Store에 저장하는 게 안전합니다.

한 달 후 — 월 3시간이 20분으로

이 워크플로우를 돌린 지 한 달 지나니 영수증 정리 시간이 월 3시간에서 20분으로 줄었어요. 구글 시트에 자동으로 쌓인 경비 내역을 회계사에게 그대로 넘기니 정산도 빨라졌습니다.

명함도 촬영 즉시 연락처 DB에 들어가서 네트워킹 이벤트 직후 후속 메일을 보낼 때 이름을 찾느라 헤매지 않게 됐어요. 손으로 타이핑하던 시절엔 명함 15장 입력에 18분 걸렸는데, 지금은 촬영 1분 + 보정 2분이면 끝입니다.

OCR 자동화는 완벽하진 않지만 80% 정확도면 충분히 쓸 만해요. 나머지 20%는 손으로 고치는 게 처음부터 전부 타이핑하는 것보다 9배 빠릅니다.

이 글이 도움이 됐다면 공유해 주세요
X 공유

관련 글