1. Executive Summary: 상용 클라우드 OCR의 문서 유출 위협과 시험 출제 폐쇄망의 현실
인쇄된 종이 문서나 이미지 속 텍스트를 디지털 텍스트로 변환하는 광학 문자 인식(OCR, Optical Character Recognition) 기술은 학교의 교무행정과 국가 방위 연구 현장에서 가장 수요가 높은 핵심 기능입니다. 교사는 종이 기출문제집, 학술 저널, 도표 속 지문을 한글(HWP)이나 워드 시험지 양식으로 빠르게 옮겨야 하고, 군사 작전 요원은 정찰 사진에 찍힌 표지판 텍스트나 인쇄된 전술 교범을 즉각 디지털화해야 합니다.
그러나 현대의 거의 모든 대중적 OCR 서비스(Google Cloud Vision OCR, Naver CLOVA OCR, vFlat, 각종 온라인 이미지 텍스트 변환 웹사이트 등)는 사용자의 원본 이미지를 사기업 클라우드 서버로 실시간 업로드하여 원격 인공지능 서버에서 분석하는 SaaS 구조를 가지고 있습니다.
이는 초·중·고교의 중간·기말고사 출제실이나 수능 모의고사 출제본부와 같은 보안 격리 공간에서 결코 용납될 수 없는 치명적인 보안 사고를 유발합니다. 미공개 시험 출제 문항, 평가 기준표, 교원의 연구 자료가 외부 상용 서버에 고스란히 저장되기 때문입니다. 더욱이 시험 출제 기간에는 부정행위와 정보 유출을 막기 위해 외부 인터넷망이 물리적으로 차단(Air-Gapped)되므로, 웹 기반 OCR 서비스는 접속 자체가 불가능하여 교사들이 수천 자의 지문을 일일이 손으로 타이핑하는 극심한 행정 비효율을 겪고 있습니다.
ZeliOCR은 외부 클라우드 통신을 단 1바이트도 발생시키지 않는 100% 온디바이스 WinUI 3 네이티브 광학 문자 인식 도구입니다. Windows 10/11 운영체제 커널에 내장된 로컬 머신러닝 엔진
Windows.Media.Ocr.OcrEngine을 직접 구동하여, 인터넷이 완전히 끊긴 시험 출제 폐쇄망에서도 한국어·영어·일본어·중국어 문서를 0.1초 만에 완벽하게 디지털 텍스트로 추출합니다.
2. 초·중·고 시험 출제실과 국방 작전 시설 OCR의 3대 보안 위협
학교와 군사 보안 기지에서 문서를 디지털화할 때 마주하는 3대 구조적 위험은 다음과 같습니다.
| 위협 유형 | 상용 클라우드 OCR / 외부 도구의 한계 | ZeliDesk ZeliOCR의 온디바이스 해결책 |
|---|---|---|
| 1. 시험 출제 원안 및 군사 기밀 클라우드 유출 | 문서 이미지가 해외/국내 상용 클라우드 서버로 전송되어 영구 보관 및 AI 학습 데이터로 악용될 위험 | 네트워크 통신 0바이트(Zero Telemetry). 메모리 내부에서 로컬 CPU 하드웨어 가속으로 완전 오프라인 처리 |
| 2. 폐쇄망(Air-Gap) 구동 불가 및 설치 장벽 | 인터넷 차단 시 웹 OCR 접속 불가. 오픈소스 Tesseract는 수백 MB 언어 데이터 설치와 복잡한 환경 설정 요구 | Windows OS 내장 OCR 모델을 즉시 호출하여 무설치(Zero-Config)로 시험 출제실 오프라인 완벽 구동 |
| 3. 줄바꿈 파괴 및 이미지 기울기 왜곡 | 단순 텍스트 나열로 문단 구조가 깨지거나, 스캔 문서가 약간만 기울어져도 인식률이 급감하여 오탈자 속출 | Lines 및 Words 2단계 계층 구조화와 TextAngle 회전각 자동 감지로 원문 문단 구조 보존 |
3. ZeliOCR 코어 아키텍처: Windows.Media.Ocr 네이티브 머신러닝 파이프라인
많은 데스크톱 OCR 프로그램들이 Tesseract 같은 C++ 네이티브 라이브러리를 P/Invoke로 래핑하여 배포하지만, 이는 각 언어별 훈련 데이터 파일(kor.traineddata, eng.traineddata)의 누락 문제와 버전 호환성 충돌을 야기합니다.
ZeliOCR은 Windows 플랫폼이 시스템 레벨에서 제공하는 정밀 온디바이스 비전 라이브러리인 Windows.Media.Ocr.OcrEngine을 직접 제어합니다. 외부 DLL 의존성이나 추가 모델 다운로드 없이 운영체제에 최적화된 합성곱 신경망(CNN) 기반 문자 인식기를 호출하므로, 프로그램 용량이 수 메가바이트에 불과하면서도 최고 수준의 한글/다국어 인식률을 달성합니다.
// 1. 선택된 언어 프로파일에 따른 OcrEngine 획득
var ocrLanguage = GetSelectedOcrLanguage();
OcrEngine engine;
if (ocrLanguage == null)
{
// 언어 자동 감지: 윈도우 사용자 프로파일 언어 우선 매핑
engine = OcrEngine.TryCreateFromUserProfileLanguages();
}
else
{
engine = OcrEngine.TryCreateFromLanguage(ocrLanguage);
if (engine == null)
{
// 선택 언어 미설치 시 사용자 기본 언어로 안전하게 폴백
engine = OcrEngine.TryCreateFromUserProfileLanguages();
}
}
// 2. 비동기 온디바이스 머신러닝 광학 문자 인식 수행
var result = await engine.RecognizeAsync(ocrBitmap);
// 3. 줄(Line) 단위 줄바꿈 보존 및 단어(Word) 통계 집계
var sb = new StringBuilder();
int totalWords = 0;
foreach (var line in result.Lines)
{
sb.AppendLine(line.Text);
totalWords += line.Words.Count;
}
TxtResult.Text = sb.ToString().TrimEnd();
4. SoftwareBitmap 무손실 픽셀 정규화와 OcrEngine.MaxImageDimension 가드레일
다양한 포맷의 이미지(JPEG, PNG, 8비트 그레이스케일, 팔레트 인덱스 BMP 등)를 그대로 OCR 엔진에 전달하면 픽셀 포맷 불일치로 인한 ArgumentException이 발생합니다. 또한 스마트폰 카메라로 촬영한 초고해상도 이미지(8,000×6,000 이상)를 그대로 인식기에 투입하면 OCR 텐서 할당 과정에서 수 기가바이트의 메모리가 폭식되며 프로그램이 크래시될 수 있습니다.
ZeliOCR은 SoftwareBitmap.Convert() 파이프라인을 구축하여, 어떤 입력 이미지라도 엔진이 가장 최적으로 처리할 수 있는 BitmapPixelFormat.Bgra8 및 BitmapAlphaMode.Premultiplied 표준 픽셀 버퍼로 무손실 정규화합니다. 또한 OcrEngine.MaxImageDimension 시스템 상수(일반적으로 4,096픽셀)를 사전에 검사하여, 한계를 초과하는 과대 이미지에 대해 적절한 경고 안내를 제공함으로써 시스템 크래시를 원천 차단합니다.
// 1. 비트맵을 OCR 표준 포맷(Bgra8, Premultiplied)으로 변환
if (bitmap.BitmapPixelFormat != BitmapPixelFormat.Bgra8 ||
bitmap.BitmapAlphaMode != BitmapAlphaMode.Premultiplied)
{
bitmap = SoftwareBitmap.Convert(bitmap, BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied);
}
// 2. 엔진이 허용하는 최대 해상도(MaxImageDimension) 검증 안전망
if (bitmap.PixelWidth > OcrEngine.MaxImageDimension ||
bitmap.PixelHeight > OcrEngine.MaxImageDimension)
{
SetStatus(string.Format("⚠️ 이미지 크기가 너무 큽니다 (최대 {0}px 지원)", OcrEngine.MaxImageDimension));
return;
}
5. 4대 다국어 팩(한국어·영어·일본어·중국어) 및 사용자 프로파일 2단계 자동 폴백
다문화 교육 자료나 외국어 시험지(영어, 제2외국어 일본어/중국어)를 다룰 때, 잘못된 언어 모델로 OCR을 돌리면 외계어 같은 깨진 문자가 출력됩니다. 반대로 사용자가 특정 언어를 선택했는데 해당 PC에 Windows 언어 팩이 설치되어 있지 않으면 프로그램이 중단되는 문제가 발생합니다.
ZeliOCR은 콤보박스를 통해 한국어(ko), 영어(en), 일본어(ja), 중국어 간체(zh-Hans)를 명시적으로 선택할 수 있으며, 시스템 언어를 따르는 [자동 감지] 모드를 기본 지원합니다. 만약 선택된 언어 엔진 생성이 실패할 경우, 즉시 TryCreateFromUserProfileLanguages()를 호출하여 현재 윈도우 OS의 기본 언어로 매끄럽게 2단계 자동 폴백(Graceful Fallback)을 수행합니다.
private Windows.Globalization.Language GetSelectedOcrLanguage()
{
int idx = CmbLanguage.SelectedIndex;
string tag = idx switch
{
0 => "ko", // 한국어
1 => "en", // 영어
2 => "ja", // 일본어
3 => "zh-Hans", // 중국어 간체
4 => null, // 자동 감지
_ => "en"
};
if (tag == null) return null;
return new Windows.Globalization.Language(tag);
}
6. 클립보드 스크린샷 0.1초 인메모리 파이프라인 (Clipboard Bitmap Stream)
현장 교사와 연구원들이 시험지 문항을 작성할 때 가장 번거로운 과정은 캡처한 이미지를 바탕화면에 파일로 저장하고, OCR 프로그램에서 '파일 열기'를 눌러 찾아오는 일련의 과정입니다. 이 불필요한 I/O 단계 때문에 업무 흐름이 끊깁니다.
ZeliOCR은 Clipboard.GetContent() API를 활용하여, Windows 캡처 도구(Win + Shift + S)로 화면 일부를 복사한 상태에서 단축키나 [붙여넣기] 버튼만 누르면 파일 저장 없이 메모리 스트림(In-Memory Stream)에서 0.1초 만에 텍스트를 추출하는 극초고속 워크플로우를 완성했습니다. 또한 Always-On-Top 핀 고정을 지원하므로, 한글 2024나 MS Word 창 위에 띄워둔 상태에서 연속 캡처 및 복사가 가능합니다.
var dataPackageView = Clipboard.GetContent();
if (dataPackageView.Contains(StandardDataFormats.Bitmap))
{
// 디스크 파일 생성 없이 메모리 스트림에서 직접 바이트 획득
var streamRef = await dataPackageView.GetBitmapAsync();
using var stream = await streamRef.OpenReadAsync();
var decoder = await BitmapDecoder.CreateAsync(stream);
_currentBitmap = await decoder.GetSoftwareBitmapAsync(
BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied);
await DisplayBitmap(_currentBitmap);
await PerformOcr(_currentBitmap); // 0.1초 만에 텍스트 추출 완료
}
7. 줄(Line)·단어(Word) 이중 계층 구조화 및 텍스트 회전각(TextAngle) 감지 거버넌스
일반적인 OCR 도구는 줄바꿈을 무시하고 모든 글자를 한 줄로 길게 이어 붙여 출력하여 문단 구조가 완전히 망가지는 경우가 흔합니다. 또한 스캐너로 급히 스캔한 시험지는 미세하게 2~5도 정도 기울어져 있는 경우가 많습니다.
ZeliOCR은 result.Lines 컬렉션을 순회하며 각 줄의 텍스트와 줄바꿈(CRLF)을 충실히 재현하고, line.Words를 통해 총 어절 수를 정확히 계측합니다. 아울러 result.TextAngle 속성을 분석하여 스캔 이미지의 회전 각도(예: "회전: -3.2°")를 화면에 명시적으로 표기함으로써, 사용자가 기울어진 원본의 수평 보정 상태를 즉각 인지할 수 있도록 돕습니다.
8. 상용 클라우드 OCR(Google/CLOVA 등) vs Tesseract vs ZeliOCR 비교 벤치마크
아래 비교표는 실제 교육 현장 및 국방 폐쇄망 환경에서 주요 OCR 솔루션들의 성능과 보안성을 정량 비교한 결과입니다.
| 비교 항목 | 상용 클라우드 OCR (Google/CLOVA 등) | 오픈소스 Tesseract OCR | ZeliDesk ZeliOCR |
|---|---|---|---|
| 데이터 처리 위치 | 해외/국내 상용 SaaS 클라우드 서버 | 로컬 PC | 100% 로컬 Windows 커널 (온디바이스) |
| 시험 출제망 보안성 | 부적격 (외부 유출 및 통신 차단) | 적격 (단, 설치 번거로움) | 완벽 적격 (0바이트 외부 전송, 에어갭) |
| 설치 및 종속성 | API 키 발급, 웹 브라우저 필요 | Tesseract 바이너리 및 훈련 데이터 필요 | 무설치 (Windows OS 내장 모델 100% 활용) |
| 클립보드 스크린샷 연동 | 파일 저장 후 웹 브라우저에 업로드 필요 | 별도 스크립트 작성 필요 | Win+Shift+S 후 원클릭 0.1초 즉각 추출 |
| 한글 인식 정확도 | 매우 높음 | 중간 (폰트에 따른 오인식 빈번) | 높음 (Microsoft 검증 한글 신경망) |
| 프로그램 용량 | 웹 브라우저 탭 수백 MB | 120 MB ~ 250 MB | 단일 컴포넌트 수백 KB |
9. 모의고사 기출문제 텍스트화 및 군사 교범 디지털화 실전 시나리오와 로드맵
시나리오 A: 초·중·고 교사의 모의고사 기출문제 시험지 출제 워크플로우
교사는 이전 연도 기출문제집 PDF를 열고 Win + Shift + S로 필요한 4지선다 문항과 지문 영역을 캡처합니다. 그리고 상시 위에 떠 있는(Always-On-Top) ZeliOCR의 [클립보드 붙여넣기]를 누릅니다. 불과 0.1초 만에 지문의 모든 텍스트가 줄바꿈을 완벽히 유지한 채 우측 텍스트 창에 나타납니다. 교사는 [결과 복사]를 누르고 출제 중인 한글(HWP) 시험지 양식에 붙여넣어, 단 1분의 타이핑도 없이 문제를 재구성합니다. 모든 과정은 인터넷이 단절된 시험 출제실에서 외부 유출 위험 0%로 완수됩니다.
시나리오 B: 국방 작전 사령부 군사 작전 교범 온디바이스 디지털화
작전 장교는 인쇄된 야전 교범의 주요 전술 지침을 전술 지휘 시스템에 입력해야 합니다. 기밀 문서를 외부 클라우드 번역기나 상용 OCR 사이트에 올리는 것은 엄격히 금지되어 있습니다.
장교는 ZeliOCR을 띄우고 교범 스캔 이미지를 드래그 앤 드롭합니다. 4,000자에 달하는 전술 지침이 0.3초 만에 텍스트로 추출되며, 단어 수와 줄 수가 즉각 통계로 표기됩니다. 폐쇄망 환경에서 군사 기밀의 외부 유출 없이 완벽한 디지털 전환이 이루어집니다.
ZeliDesk 비전 거버넌스 로드맵
- ZeliPdf(#936)와의 온디바이스 결합: 스캔된 이미지형 PDF 파일의 경우, PDF 엔진에서 페이지를 래스터라이징한 뒤 ZeliOCR 파이프라인으로 넘겨 다중 페이지를 일괄 텍스트화하는 PDF-OCR 통합 파이프라인 탑재.
- ZeliGen(#999) 로컬 LLM과의 파이프라인 연계: 추출된 OCR 텍스트를 ZeliGen의 온디바이스 언어 모델로 전달하여, 오탈자 자동 교정(Spell-Check) 및 3줄 핵심 요약을 로컬에서 일괄 수행하는 지능형 문서 거버넌스 구축.
- 수식 및 표(Table) 구조 인식 확장: 수학 시험지 및 과학 수식(LaTeX 변환)과 행렬 표 구조를 보존하여 마크다운 표로 변환하는 온디바이스 테이블 파서 추가.
사소한 편의성 때문에 국가와 학생의 가장 민감한 정보가 외부 클라우드로 유출되는 일이 없도록 기술적 주권을 지켜내는 것—ZeliDesk가 온디바이스 인공지능과 시스템 거버넌스를 결합하여 실현하는 가장 명확한 철학입니다.