요약. 영수증을 어디에도 보내지 않고 읽을 수 있습니다. 앱에 포함된 ML Kit 글자 인식이 이미지를 줄로 바꾸고, 앱이 가진 한국어·영어 규칙이 상호·날짜·금액·통화 후보를 내며, 사용자가 이 네 값을 이미지와 대조해 확정하기 전에는 아무것도 합계에 들어가지 않습니다. 다만 "기기 안에서"는 인식 단계만 가리킵니다. 문서 스캐너는 내려받기가 필요할 수 있는 Google Play 서비스 모듈이고, 클라우드 사진 공급자는 자체 연결이 필요합니다.
도토리 영수증 스캐너한국어·영어 영수증을 인식하고 금액을 확인하세요. 확정 기록은 CSV로 공유할 수 있습니다.
이 글은 Android 8.0(API 26) 이상에서 동작하는 도토리 영수증 스캐너 v1 기준입니다. 이미지 한 장에서 한국어 또는 영어 영수증 한 건을 읽고, 영수증마다 상호·날짜·금액·통화와 몇 가지 부가 필드를 요약으로 남깁니다. 앱 계정도, 개발자가 운영하는 영수증 서버도 없습니다. 행 묶기·금액 타입·백업 규칙 같은 구현 세부는 기술 노트에 있고, 이 글은 사용 흐름과 결과를 확인하는 방법을 다룹니다.
폰 안에 남는 것과 아닌 것
"앱이 영수증을 서버로 보내지 않는다"와 "이미지를 얻을 때도 네트워크를 쓰지 않는다"는 다른 말입니다. 모든 단계에서 성립하는 것은 앞의 문장뿐입니다.
| 단계 | 실행 위치 | 네트워크 |
|---|---|---|
| 촬영(문서 스캐너) | 자체 카메라 권한으로 도는 Google Play 서비스 모듈 | 모듈을 먼저 내려받아야 할 수 있음 |
| 사진에서 선택(Photo Picker) | Android 시스템 선택기. 고른 파일만 앱에 넘어옴 | 클라우드 사진 공급자에서 고를 때만 |
| 글자 인식 | 앱에 포함된 ML Kit Text Recognition v2 한국어 모델 | 없음 |
| 필드 추출 | 앱이 가진 한국어·영어 라벨 규칙 | 없음 |
| 기록과 이미지 | 앱 전용 저장소. 클라우드 백업에서 제외 | 없음 |
| 광고·ML Kit 진단 | 데이터 처리가 별개인 SDK | 있음. 단 영수증 이미지·텍스트는 광고 요청에 넣지 않음 |
앱은 위험 권한을 요청하지 않습니다. 스캐너는 자기 카메라 권한을 쓰고, 선택기는 고른 이미지만 넘깁니다. 스캐너 모듈이 Play 서비스를 통해 내려올 수 있으므로 첫 촬영부터 오프라인으로 작동한다고 보장하지 않습니다.
영수증에서 확정 기록까지
- 홈 화면에서 촬영을 누르면 문서 스캐너가 영수증 한 장을 잘라 반듯하게 펴고, 사진에서 선택을 누르면 이미 있는 이미지를 씁니다. 스캐너를 취소해도 오류가 아니며 선택기가 저절로 열리지 않습니다.
- 영수증을 읽는 중… 이 표시된 뒤 결과가 곧바로 초안으로 저장되므로 화면을 벗어나도 잃지 않습니다.
- 검토 화면에서 ! 가 붙은 값은 살펴볼 값입니다. ! 를 누르면 확인되고, 값을 고쳐도 확인됩니다. 사용자가 고친 값은 이후 인식이 덮어쓰지 않습니다.
- 상호·날짜·금액·통화를 확인하면 확정할 수 있습니다. 합계에 들어가려면 종류도 구매 또는 환불로 확인해야 합니다.
- 확정 저장을 누르거나, 나중에 확인하려면 초안 보관을 누릅니다. 초안은 확정하기 전까지 합계와 내보내기에 들어가지 않습니다.
이미지와 대조해 확인할 값
규칙은 후보를 낼 뿐 회계를 판정하지 않습니다. 제안된 값을 다시 봐야 하는 경우는 다음과 같습니다.
| 보이는 것 | 이유 | 할 일 |
|---|---|---|
| 금액이 실제 결제액과 다름 | 합계·결제금액·Grand total·Amount paid 같은 합계 라벨만 후보이고, 소계·Balance due·팁·거스름돈·할인·포인트는 후보가 아님 | 이미지에서 결제 합계를 고름 |
| 통화에 확인 필요 표시 | $·¥ 는 모호한 채로 두고, 영수증 언어로 통화를 정하지 않음 | USD·KRW 같은 세 글자 코드를 입력 |
| 통화가 이미 채워져 있음 | 설정의 주 통화는 영수증에 통화가 없을 때 먼저 제안하는 값일 뿐임 | 그래도 영수증과 대조해 확인 |
04/05 같은 날짜에 표시 | MM/DD 와 DD/MM 로 다르게 읽힘. 날짜 형식 힌트는 어느 쪽을 먼저 제안할지만 정함 | YYYY-MM-DD 형식으로 확인 |
| 날짜나 연도가 비어 있음 | 없는 날짜를 오늘이나 촬영일로 채우지 않음 | 직접 입력하거나 초안으로 둠 |
| 소수 자릿수가 이상한 금액 | 금액을 정확히 보존함. 12.345 를 12.35 로 반올림하지 않음 | 영수증이 뜻하는 값으로 고침 |
해외 카드 전표에는 가게 통화와 카드 결제 통화가 함께 찍힐 수 있습니다. 앱은 사용자가 확정한 금액·통화 한 쌍만 기록하고, 둘을 더하거나 나누지 않습니다.
합계와 CSV 에 들어가는 것
홈 화면은 이번 달을 통화별로 지출·환불·순액으로 보여주며 환율 환산은 하지 않습니다. 종류까지 확인한 확정 영수증만 셉니다. 초안과 모름으로 둔 영수증은 분류할 때까지 빠집니다.
CSV 내보내기는 확정 영수증 한 건을 한 행으로 만들어 Android 공유 창으로 넘깁니다.
schema_version,date,time,merchant,currency,amount,transaction_type,tax,payment_method,memo
- 금액은 소수점이 점이고 자릿수 구분과 기호가 없는 십진 문자열이며, 옆 열에 ISO 통화 코드가 있습니다. 세금은 통화가 금액과 같을 때만 씁니다.
- 파일은 BOM 이 있는 UTF-8, CRLF 행입니다.
=·+·-·@로 시작하는 텍스트에는 접두를 붙여 스프레드시트가 수식으로 실행하지 않게 합니다. - CSV 에는 구매 품목이 아니라 요약 필드와 메모가 들어갑니다. 내보내기이지 백업이 아니며 가져오기·복원은 없습니다.
이미지·백업·삭제
- 영수증 이미지는 나중에 기록과 대조할 수 있도록 기본으로 앱 안에 보관합니다. 갤러리에는 쓰지 않습니다.
- 영수증 이미지 보관을 끄면 그 뒤에 인식한 영수증부터 적용됩니다. 이전에 보관한 이미지는 기록을 지울 때까지 남습니다.
- 영수증을 삭제하면 보관 이미지도 지워집니다. 갤러리 원본과 이미 공유한 CSV 사본은 남습니다.
- 카드 정보는 끝 4자리만 저장하지만, 보관한 이미지에는 영수증에 인쇄된 내용이 그대로 남습니다. 이미지를 자동으로 비식별화하지 않습니다.
- 기록과 이미지는 클라우드 백업에서 제외되고 기기 간 이전에서도 제외하도록 설정했습니다(제조사 이전 도구의 동작은 다를 수 있습니다). v1 에는 복원·동기화가 없습니다.
v1 의 제약
v1 은 생성형 AI 없이 OCR 과 추출 규칙을 씁니다. 개별 품목 추출, 카테고리 분류, 세금 계산, 기록 검색, 이번 달 이전의 월 합계, 중복 영수증 알림, 여러 장·PDF 영수증, 동기화·복원은 지원하지 않습니다. 인식에는 오류가 있을 수 있으므로 모든 결과는 사용자가 확정하기 전까지 초안입니다.
도토리 영수증 스캐너는 한국어·영어 영수증을 기기 안에서 읽고, 모든 값을 사용자가 확정하게 하며, 통화마다 따로 합계를 내고 확정 기록을 CSV 로 공유합니다. 도토리 영수증 스캐너 자세히 보기



