스크린샷에서
필요한 데이터 필드만 추출하는 방법
스크린샷에서 필요한 데이터가 단 두 개의 숫자, 예를 들어 주간 메트릭 대시보드의 '순수익'과 '이탈률'뿐인데, 지금까지 사용한 모든 도구가 전체 페이지를 그대로 반환한다면 어떨까요? 14개 열 중 12개는 데이터가 유용해지기 전에 삭제해야 합니다. 문제는 스크린샷에서 데이터를 추출하는 방법이 아닙니다. 그런 방법은 수십 가지가 있습니다. 중요한 것은, 필요한 세 개의 필드만 유지하기 위해 모든 것을 추출해야 하는 이유입니다.
"모두 추출" 기능의 실제 비용
대부분의 스크린샷 추출 도구는 사용자가 페이지의 모든 데이터를 원한다는 가정을 합니다. 이 가정은 아무도 예산에 포함하지 않는 정리 단계를 만듭니다.
18개의 KPI 카드가 있는 대시보드 스크린샷을 예로 들어보겠습니다. 실제로 필요한 것은 MRR, 활성 사용자, 전환율 세 가지뿐입니다. 대부분의 사람들이 가장 먼저 사용하는 Excel의 기본 사진에서 데이터 기능은 모든 보이는 숫자를 셀에 추출합니다. 이제 행과 열로 얽힌 55개의 데이터 포인트가 생겼고, 대부분은 레이블에서 분리된 맥락 없는 값입니다. 필요한 세 가지를 사용하려면 먼저 55개 중에서 각각을 찾고, 올바른 값인지 확인한 후(글로벌 카드가 아닌 북미 카드의 "수익" 숫자), 나머지를 삭제하거나 보관해야 합니다.
이 작업을 주 2회 수행한다면, 정리 작업이 전체 워크플로 시간의 약 70%를 차지합니다. 추출 자체는 빠르지만, 분류 작업은 느립니다. 매주 다른 대시보드에서 지표를 추적하는 5명의 팀으로 확대하면, 매주 금요일마다 3-4시간의 눈에 보이지 않는 비용이 발생합니다. 아무도 이를 별도 작업으로 생각하지 않아 보고하지 않으며, 그냥 "Excel에 데이터 넣기"의 일부로 여겨집니다.
현장 데이터 수집 앱에서 600장의 스크린샷을 처리하던 Reddit 사용자가 명확히 밝혔듯이, 필요한 것은 각 이미지에서 "태그 번호, 길이, 무게, 이벤트 유형, 태거, 날짜, 시간, GPS/위치, 수온"이었습니다. 한 번에 10장씩 ChatGPT에 업로드하는 방식은 작동했지만 업로드 제한에 빠르게 부딪혔습니다. OCR 도구는 텍스트를 추출해 주었지만 "필드 구조를 항상 유지하거나 한 레코드의 두 스크린샷을 연결하지는 못했습니다." 두 접근 방식의 공통된 한계는 동일했습니다. 도구가 모든 것을 제공했지만, 사용자가 직접 구조를 다시 만들어야 했습니다.
"모든 것 추출"의 숨은 비용은 처리 시간이 아니라, 10초짜리 추출을 스크린샷당 3분짜리 작업으로 만드는 수동 열 삭제 및 재확인 과정입니다.
열 기반 추출이 페이지 전체를 옮기는 대신 필드를 선택하는 방법
대부분의 도구가 전체 페이지를 제공하는 이유는 구조적 한계 때문입니다. 기존 OCR은 Tesseract, Google Cloud Vision, 또는 Excel의 사진 데이터 기능 뒤에 있는 Microsoft 자체 엔진을 막론하고, 이미지를 왼쪽에서 오른쪽, 위에서 아래로 스캔하여 보이는 모든 문자를 텍스트로 변환합니다. 표 구조가 있으면 텍스트가 행과 열로 구성되어 있음을 인식할 수 있지만, 사용자가 관심 있는 행이나 열을 구분할 메커니즘은 없습니다. 모든 것을 읽는 이유는 모든 것을 읽는 것이 목적이었던 문서 처리 시대를 위해 설계되었기 때문입니다.
선택적 필드 추출은 반대 방향에서 시작합니다. "이미지에 어떤 텍스트가 있나요?"라고 묻는 대신, "정의한 필드 이름에 대해 이 이미지에 어떤 값이 포함되어 있나요?"라고 묻습니다. 이것이 사용자 정의 열 추출입니다: "매출", "이탈률", "활성 사용자" 등 원하는 열 이름을 입력하면, AI가 위치가 아닌 의미를 기반으로 페이지 어디에서든 해당 값을 찾습니다. 입력한 열 이름이 출력 테이블의 정확한 헤더가 됩니다. AI가 픽셀 좌표를 기억하는 것이 아니라, 레이블과 화면상 데이터 간의 의미적 관계를 이해하기 때문에 각 값이 올바른 열에 배치됩니다.
Pragmile의 2025년 독립 벤치마크는 표 추출 품질을 포함한 6개 차원에서 10개의 OCR 및 문서 이해 도구를 테스트했습니다. 그 차이는 명확했습니다: Tesseract는 표 추출에서 2/10을 기록했으며 — "표를 열과 행으로 나누지 않고 연속된 텍스트로 처리했습니다." 원시 문자 OCR에서 10/10을 기록한 Azure Form Recognizer조차 표 추출에서는 4/10으로 떨어졌습니다. 문서의 의미를 이해하는 AI 엔진, 즉 문자 모양뿐만 아니라 문서의 의미를 이해하는 엔진이 의미 있는 구조를 보존합니다.
단계별 가이드: 원하는 필드만 추출하기
코드를 작성하거나, 템플릿을 구성하거나, 모델을 학습시키지 않고도 선택적 추출을 실행할 수 있습니다. 워크플로우는 세 단계로 구성되며, 가장 중요한 단계는 파일을 건드리기 전에 이루어집니다.
도구를 열기 전에 필요한 것을 먼저 정하세요. 대부분의 사람들이 이 단계를 건너뛰고, 결국 4개 대신 20개의 열을 만들게 됩니다. 스크린샷을 보고 추출하려는 정확한 필드 이름을 적어두세요. "오른쪽 상단 데이터"가 아니라 "월간 활성 사용자"와 "고객 확보 비용"처럼요. 레이아웃은 다르지만 동일한 데이터 포인트를 가진 여러 스크린샷을 처리하는 경우(주간 대시보드에서 지표를 가져올 때 흔한 상황), AI는 위치가 아닌 의미를 읽기 때문에 동일한 열 이름이 모두에 적용됩니다. 이를 통해 여러 스크린샷 데이터를 하나의 구조화된 Excel 파일로 통합하여 소스별로 별도 프로세스를 만들 필요가 없습니다.
열 이름을 입력하고 업로드하세요. 필드 이름을 열 헤더로 입력하세요. "타임스탬프", "메트릭 이름", "값", "소스 대시보드"처럼요. 스크린샷(또는 여러 스크린샷 — 일괄 처리는 모든 결과를 동일한 테이블에 작성하여 여러 이미지의 행을 하나의 스프레드시트로 병합)을 업로드하세요. AI가 각 이미지를 읽고 각 열 이름에 해당하는 값으로 행을 채웁니다. 특정 스크린샷에 지정한 필드가 없으면, 잘못된 값을 강제로 넣는 대신 해당 셀은 비워둡니다. 이는 빈 공간에 텍스트를 환각하는 OCR 도구보다 더 안전한 동작입니다.
내보내기 및 검증. 구조화된 결과물을 Excel, CSV 또는 JSON으로 다운로드하세요. 검증 단계는 빠르게 진행됩니다. 요청한 필드만 확인하면 되기 때문입니다. 50개 셀을 일일이 훑으며 데이터가 뒤섞이지 않았는지 확인할 필요가 없습니다. 값이 이상해 보여도 20개 열보다 4개 열 표에서 훨씬 쉽게 찾을 수 있습니다. 이것이 바로 '선별적' 접근의 이점이 누적되는 부분입니다. 추출할 필드가 적을수록 검증할 필드도 줄어들고, 잡아낼 오류도 적어지며, 업로드부터 사용 가능한 결과물까지 더 빨라집니다.
파일은 안전하게 처리되며 저장되지 않습니다.
최적의 결과를 위한 필드 이름 지정 방법
출력 품질은 스크린샷 해상도보다 열 이름을 어떻게 지정하느냐에 더 크게 좌우됩니다. 이 단계에서 대부분의 추출 결과가 한 번에 깔끔하게 나오거나 두 번째 시도가 필요하게 됩니다.
열 이름을 "금액(Amount)"으로 쓰면 AI가 추측해야 합니다. 이게 송장 합계인지, 라인 항목 금액인지, 세금 금액인지, 소계인지? "송장 합계(세금 포함, USD)"라고 쓰면 AI는 명확한 대상을 알 수 있습니다. 열 이름에 단어가 많을수록 모델이 의미를 구분할 더 많은 맥락을 얻습니다. 이는 장황하게 쓰라는 것이 아니라, 의미 매칭 과정에서 추측을 없애라는 것입니다. 다음은 일관되게 더 깔끔한 결과를 만드는 세 가지 명명 규칙입니다:
간결함보다 구체적으로. "문서 헤더에 표시된 마감일(Due Date (as shown on document header))"이 "날짜(Date)"보다 성능이 좋습니다. "공급업체 연락처 이메일(Vendor Contact Email)"이 "이메일(Email)"보다 낫습니다. 스크린샷이 "합계(Total)"가 일일 합계, 주간 합계 또는 세션 합계를 의미할 수 있는 앱에서 온 경우, 열 이름에 그 구분을 포함하세요.
열당 하나의 개념. "고객 이름 및 주소(Customer Name and Address)"를 하나의 열로 쓰면 AI가 이를 연결할지, 하나를 선택할지, 행으로 나눌지 결정해야 하므로 예측 불가능한 결과가 나옵니다. "고객 이름(Customer Name)"과 "고객 주소(Customer Address)"를 별도의 열로 나누세요.
스크린샷의 언어와 일치시키세요. 대시보드가 독일어이고 레이블이 "Gesamtumsatz"라면 열 이름을 "총 수익(Total Revenue)"이 아닌 "Gesamtumsatz"로 지정하세요. AI는 여러 언어를 처리할 수 있지만, 이미지에 사용된 정확한 언어와 표현에 더 확실히 기준을 둡니다. 이 원칙은 다른 소프트웨어 플랫폼에도 적용됩니다. Salesforce에서 "순매출(Net Sales)"로 표시된 값과 Tableau에서 "수익(순)(Revenue (net))"으로 표시된 값은 모두 "순매출(Net Sales)"이라는 열 이름에 올바르게 매핑됩니다. AI가 의미적 동등성을 이해하기 때문입니다. 하지만 추출 작업 전반에 걸쳐 명명 규칙이 내부적으로 일관될 때 매칭이 더 신뢰할 수 있습니다.
선택적 추출이 뛰어난 경우 — 그렇지 않은 경우
선택적 추출은 특정 문제를 매우 잘 해결하지만, 모든 스크린샷 상황에 최적의 도구는 아닙니다. 그 경계를 알면 불필요한 시행착오를 줄일 수 있습니다.
확실히 유리한 경우: 25개 중 3개 지표만 필요한 대시보드 스크린샷. 수백 개 레코드에서 동일한 필드 집합을 수집하는 앱 스크린샷 — 예를 들어 스크린샷에서 고객 이름, 이메일, 전화번호, 등록일, 마지막 예약을 일괄 가져와 Excel로 옮기려는 Reddit 사용자의 사례. 크로스 플랫폼 데이터 통합 — Salesforce, Tableau, Google Analytics 스크린샷에서 동일한 KPI를 한 행으로 추출하는 작업은 동일한 레이아웃을 요구하는 템플릿 기반 도구로는 불가능합니다. 이 지점에서 스크린샷-스프레드시트 접근법은 수동 데이터 입력에서 자동화 파이프라인으로 전환됩니다.
전체 페이지 OCR이 더 나은 경우: 스크린샷에 어떤 필드가 있는지 아직 모를 때 — 추출할 대상을 결정하기 전에 먼저 내용을 발견해야 하는 경우. 규정 준수나 감사 목적으로 스크린샷 내용을 그대로 보관해야 하며, 완전성이 사용성보다 중요한 경우. 스크린샷에 모든 열이 실제로 필요한 단일 밀집 테이블이 포함되어 있고, 20개 열을 확인하는 것이 수동으로 옮겨 적는 것보다 여전히 빠른 경우.
이것은 이분법적 선택이 아닙니다. 가장 효율적인 워크플로는 종종 둘 다 사용합니다: 새 문서 유형을 조사하기 위해 빠른 전체 추출을 먼저 하고, 반복 작업에는 선택적 추출 템플릿을 사용합니다. 열을 정의하는 설정 비용은 한 번만 지불하면 되며, 이후 동일한 열로 추출할 때마다 거의 즉시 처리됩니다.
자주 묻는 질문
선택적 추출이 표가 아닌 스크린샷(예: 위젯이 흩어져 있는 대시보드)에서도 작동하나요?
네, 바로 이 점에서 기존 OCR보다 큰 효율성 향상을 제공합니다. 템플릿 기반 도구는 데이터가 정돈된 표 형태가 아니면 작동하지 않습니다. 열 이름 매칭을 사용하는 선택적 추출은 표 형태가 필요 없습니다. "월간 활성 사용자: 142,300"이라는 값이 왼쪽 상단 KPI 카드, 중앙 막대 차트 레이블, 또는 하단 요약에 있든 관계없이 찾아냅니다. AI에게 위치는 중요하지 않으며, 열 이름과 스크린샷 내용 간의 의미적 일치만 중요합니다.
스크린샷에 제가 지정한 필드 중 하나가 포함되지 않으면 어떻게 되나요?
해당 행의 셀은 비어 있습니다. 이는 의도된 동작입니다. 빈 셀에 추측값을 강제로 넣는 것은 비워 두는 것보다 더 나쁩니다. 빈 셀은 "이 스크린샷에 해당 데이터가 없음"을 알려주지만, 추측값은 정확해 보여서 발견하기 훨씬 어려운 다운스트림 오류를 초래합니다. 모든 필드가 포함된 스크린샷과 일부만 포함된 스크린샷을 일괄 처리하는 경우, 예상되는 위치에 공백이 표시됩니다. 이는 정직한 감사를 위해 정확히 필요한 것입니다.
다른 유형의 스크린샷에서 동일한 열 이름 세트를 사용할 수 있나요?
네, 가능합니다. 이것이 핵심 워크플로우의 장점입니다. "메트릭 이름", "이번 주 값", "지난 주 값", "변경 %" 열을 한 번 정의하면 Salesforce 대시보드 스크린샷, Google Analytics 스크린샷, 내부 BI 도구 스크린샷을 동일한 배치에 업로드할 수 있습니다. AI는 소스 형식에 관계없이 의미적으로 동등한 값을 올바른 열에 매핑합니다. 유일한 요구 사항은 열 이름이 모호함을 피할 수 있을 만큼 구체적이어야 한다는 것입니다(위의 명명 섹션 참조). 더 복잡한 다중 소스 시나리오의 경우 열 이름에 몇 단어를 더 추가하면 대부분의 불일치를 방지할 수 있습니다.
손글씨나 주석이 포함된 스크린샷에서도 작동하나요?
네, 제한적으로 가능합니다. 손으로 쓴 숫자와 짧은 손글씨 레이블은 일반적으로 잘 인식됩니다. 긴 손글씨 메모, 대비가 낮은 배경의 필기체, 인쇄된 텍스트와 겹치는 주석은 정확도가 낮아집니다. 인쇄된 데이터와 손글씨 여백 메모가 혼합된 스크린샷의 경우 인쇄된 콘텐츠 추출은 매우 안정적입니다. 손글씨는 노이즈를 추가하지만 출력의 구조화된 부분을 손상시키지는 않습니다.
스크린샷 하나에서 몇 개의 필드를 추출할 수 있나요?
엄격한 제한은 없습니다. 필요한 만큼 열 이름을 정의할 수 있습니다. 하지만 실제로는 필드가 많을수록 불일치 가능성이 높아집니다(예: "금액"과 "금액(USD)"라는 두 열이 중복된 값을 가져올 수 있음). 가장 깔끔한 결과를 얻으려면 5~15개의 명확히 구분되는 필드가 적당합니다. 밀도 높은 문서에서 40개 필드가 정말 필요하다면, 열 집합을 달리하여 두 번에 나눠 추출하는 것을 고려해보세요. 병합 단계가 추가되지만 각 추출 결과는 더 깔끔합니다.
OCR 설정을 배울 필요도, 샘플 레이아웃으로 모델을 훈련시킬 필요도 없습니다. 필요한 것은 추출하려는 항목을 정확히 아는 것과, 그 항목들의 이름을 정확히 지정하는 것뿐입니다. 나머지는 도구의 몫이지, 여러분의 몫이 아닙니다.
다음 스크린샷에서 선택적 추출을 시도해보세요. 열을 정의하고 업로드하면 출력 테이블에 요청한 필드만 포함됩니다.