디지털 서류 정리, 스캔 그 이상의 체계적인 시스템 구축하기
정리되지 않은 스캔 파일 더미에 파묻혀 있나요? 산더미 같은 디지털 영수증과 인보이스를 폴더와 시트를 활용해 체계적이고 검색 가능한 라이브러리로 만드는 방법을 알아보세요.
스캐너나 스마트폰으로 문서를 디지털화했지만, 컴퓨터 폴더에는 종이 서류가 쌓여있던 책상처럼 어지럽게 파일만 쌓여갑니다. scan_2024-08-17.jpg 같은 이름의 파일을 수십 개씩 열어보며 3개월 전 영수증 하나를 찾는 일, 혹시 익숙하지 않으신가요?
문제는 단순히 종이를 디지털화하는 데 그쳤다는 점입니다. 이미지 파일로 가득 찬 폴더는 디지털로 옮겨온 서류 더미일 뿐입니다. 데이터가 진정으로 유용해지려면, 추출되고, 구조화되고, 검색 가능해야 합니다. 제대로 된 '집'이 필요한 것이죠.

해결책은 스캔 파일을 개별 파일이 아닌, 직접 관리하는 데이터베이스의 항목으로 다루는 것입니다. space-ocr에서 작업 공간은 사용자가 직접 만드는 폴더 트리입니다. 고객별로, 분기별로, 업무 방식에 맞춰 나누면 됩니다. 여러분만의 파일 캐비닛인 셈이고, 그 안에 들어가는 것은 시트만이 아닙니다. 시트, 문서 묶음, 메모, 그리고 업로드한 이미지 자체가 같은 트리에 놓입니다.
폴더 안에는 '시트(Sheet)'를 만듭니다. 특정 문서 유형에 맞춰 열 구성(스키마)을 한 번만 정의해 두는 표입니다. 예를 들어 영수증 시트에는 가게 이름, 날짜, 총액과 같은 열을 정의할 수 있습니다. 이 작업은 한 번만 하면 됩니다. 그 후로는 해당 시트에 영수증을 끌어다 놓기만 하면 자동으로 처리되어, 추출된 데이터가 정리된 새 행으로 추가됩니다.
표에 담기지 않는 문서도 있습니다. 계약서, 보고서, 여러 장짜리 안내문을 열에 밀어 넣으면 정작 읽으려던 부분이 사라집니다. 그런 문서는 '문서 묶음'으로 보관합니다. 제목과 표 구조를 남기려면 markdown 모드, 본문을 읽는 순서 그대로 받으려면 text 모드입니다. 업로드한 페이지는 묶음 안에 쌓이고, 문서에는 적혀 있지 않은 경위는 메모로 그 옆에 둘 수 있습니다.
같은 트리를 코드로도 읽을 수 있습니다. GET /space는 트리를 훑습니다. 경로와 깊이를 넘기면 그 아래 항목이 종류와 함께 돌아옵니다. GET /view는 항목 하나를 읽어, 시트라면 값·좌표·검토 결과가 담긴 행을, 묶음이라면 페이지를 반환합니다. 시트 조회는 서버에서 처리되므로 where로 조건을, sort로 정렬을, select로 열을, limit과 offset으로 페이지를 지정할 수 있고, 시트 전체를 내려받을 필요가 없습니다. 두 호출 모두 크레딧을 쓰지 않습니다.
이러한 방식은 혼란스러운 과정을 체계적인 일상으로 바꿔줍니다. 영수증 100장은 더 이상 관리해야 할 100개의 파일이 아니라, 하나의 일관된 표에 담긴 100개의 행이 됩니다. 여러 페이지로 된 PDF 파일을 추가할 수도 있습니다. 각 페이지는 별도의 행으로 자동 추가됩니다.
물론, 자동 추출 기능은 신뢰할 수 있어야 합니다. 시스템이 총액을 2,045로 읽었다면, 그게 정확한지 어떻게 알 수 있을까요? 해당 셀을 클릭하기만 하면 됩니다. 그러면 원본 문서 이미지에서 해당 숫자를 찾은 정확한 위치가 즉시 강조 표시됩니다. 직접 눈으로 확인할 수 있는 것이죠. 만약 실수를 발견하면 셀에 직접 입력하여 수정할 수 있습니다. 수동으로 입력한 값은 항상 OCR 값보다 우선 적용됩니다.
추출된 모든 값은 원본 페이지에서 직접 근거를 찾을 수 있는 감사 추적(audit trail)을 거칩니다. 시스템의 언어 모델이 텍스트를 제안하면, 최종 좌표는 페이지의 OCR 기호와 문자 단위로 대조하여 결정됩니다. 각 값에는 match_ratio 점수가 부여되며, 0.85 이상의 점수는 신뢰도 높은 일치를 의미합니다. 이러한 교차 검증 단계는 위치 데이터가 LLM의 추측이 아니라 원본 이미지에서 나왔다는 근거를 남깁니다.
이 시스템은 실용성을 고려하여 만들어졌으며, 이는 가격 정책에도 반영되어 있습니다. 스캔 이미지당 100원의 간단한 종량제 모델을 사용합니다. 매월 처음 100건의 스캔은 무료이며, 어떤 이유로든 OCR 스캔이 실패하면 비용이 청구되지 않습니다. 폴더를 탐색하거나 시트를 여는 데에는 비용이 들지 않고, API로 조회할 때도 마찬가지입니다. 차이가 나는 쪽은 내보내기입니다. CSV 다운로드는 무료·종량제에서는 1크레딧(스캔 1건과 같은 단위)을 쓰고 스타터·프로 플랜에서는 무료이며, 이미 받은 것과 같은 데이터를 다시 받을 때는 어느 플랜에서도 과금하지 않습니다.
더 자주 사용하시는 분들을 위해 더 많은 용량을 제공하는 정액 요금제도 있습니다. 무료 플랜은 3개의 시트와 1GB의 저장 공간을 포함합니다. 스타터 플랜은 최대 15개의 시트와 10GB의 저장 공간, 월 500건의 스캔(플랜 400건에 무료 100건을 더한 수)으로 확장되며, 프로 플랜은 무제한 시트, 100GB 저장 공간, 월 약 1,100건의 스캔을 제공합니다.
- 첫 폴더 만들기작업 공간에 새 폴더를 만드세요. 클라이언트, 프로젝트 이름 또는 '3분기 인보이스'와 같은 기간으로 폴더 이름을 지정할 수 있습니다.
- 시트 만들기폴더 안에 새 시트를 만드세요. 이 시트에는 영수증이나 작업 지시서와 같은 특정 유형의 문서가 저장됩니다.
- 열 정의하기추출하려는 데이터에 맞춰 열을 설정하세요. 인보이스 시트라면 '공급업체', '인보이스 번호', '날짜', '총금액'과 같은 열을 추가할 수 있습니다.
- 문서 업로드하기스캔한 이미지나 PDF를 시트로 끌어다 놓으세요. 각 파일이 처리되고 열이 채워진 새 행으로 나타납니다.
- 값 검증하기새로 추가된 행의 아무 셀이나 클릭해 보세요. 원본 문서 이미지가 나타나고 해당 영역이 강조 표시되어 추출된 데이터를 즉시 확인할 수 있습니다.
- 필요한 정보 찾기상단의 메인 검색창을 사용하여 어떤 문서든 찾아보세요. 공급업체 이름이나 인보이스 번호를 입력하면 올바른 시트와 셀로 바로 이동합니다.