AI OCR 문서 검수 및 룰 엔진 플랫폼
상용 OCR/Vision API 기반 문서 검수, 룰 엔진 기반 지식 관리, 직원용 웹과 백오피스 요구사항을 반영한 맞춤 MVP 프로젝트입니다.
프로젝트 개요
상용 OCR/Vision API 기반 문서 검수, 룰 엔진 기반 지식 관리, 직원용 웹과 백오피스 요구사항을 반영한 맞춤 MVP 프로젝트입니다. 상용 OCR/Vision API 결과를 정규화하고 원본과 추출값을 대조하는 검수 화면, 룰 모델·버전·시험 실행 화면을 React와 Express 기반으로 구현합니다.
작업 범위
- 원본 대조 검수: 3분할 화면에서 검수 대기열, 원본 문서 이미지, 추출값 목록을 한 번에 대조하고 신뢰도가 낮은 항목과 불일치 항목을 강조해 수정·승인할 수 있습니다
- 검수 요청 접수: 직원이 문서 파일을 업로드하고 문서 유형과 적용할 룰 세트를 선택해 검수를 요청합니다. 요청 건은 비동기 큐로 전달됩니다
- 룰 모델 관리: 검수에 사용하는 룰을 조건·동작 구조로 정의하고 우선순위와 적용 문서 유형을 설정하며 버전을 관리합니다
- 룰 시험 실행: 샘플 문서의 추출값을 입력으로 선택한 룰 버전을 시험 실행하고 조건별 통과·실패 사유를 단계별로 확인합니다
주요 업무
- 원본 대조 검수 화면: 문서 이미지 위 좌표 박스와 추출 필드를 양방향으로 연결하고, 룰 평가 결과를 필드별 배지로 표시합니다
- 검수 요청 접수 화면: 업로드 검증, 문서 유형 선택, 요청 상태 추적 화면을 구성합니다
- 룰 모델 관리 화면: 조건 빌더, 우선순위 정렬, 버전 비교 화면을 포함합니다
- 룰 시험 실행 화면: 실제 검수 건에 반영하기 전에 룰 결과를 미리 검증하는 샌드박스 화면입니다



프로젝트 핵심 과제
문서 유형과 스캔 품질에 따라 OCR 신뢰도 분포가 달라지므로 임계값을 문서 유형별로 조정하는 설정 구조 설계
룰 유형 범위가 미정이므로 조건 평가기를 확장 가능한 연산자 레지스트리로 설계하고 지원 유형을 협의로 확정할 계획
룰 수정 중에도 진행 중인 검수 건이 기존 버전으로 평가되
버전 고정 방식 설계 필요
OCR API 호출 실패와 지연에 대비한 재시도 정책과 중복 요청 방지 키 설계
핵심 기능 상세
원본 대조 검수
3분할 화면에서 검수 대기열, 원본 문서 이미지, 추출값 목록을 한 번에 대조하고 신뢰도가 낮은 항목과 불일치 항목을 강조해 수정·승인할 수 있습니다.
- 필드별 신뢰도 점수를 임계값 구간(통과·확인 필요·불일치)으로 분류하고 색상 대신 아이콘과 텍스트로 병기
- 원본 이미지 좌표 박스와 추출값 행을 상호 하이라이트하는 양방향 포커스 동기화 구현
- 수정 이력을 필드 단위로 저장하고 승인 시 낙관적 UI 업데이트와 서버 재검증 적용
원본과 추출값을 같은 화면에서 좌표 단위로 연결해 검수자가 불일치 항목부터 순서대로 확인하는 흐름을 구현합니다.


검수 요청 접수
직원이 문서 파일을 업로드하고 문서 유형과 적용할 룰 세트를 선택해 검수를 요청합니다. 요청 건은 비동기 큐로 전달됩니다. 업로드 검증, 문서 유형 선택, 요청 상태 추적 화면을 구성합니다.
- Multer와 S3 사전 서명 URL 방식으로 파일 업로드 경로를 분리하고 확장자·용량 검증 적용
- Bull 큐 작업으로 OCR 요청을 등록하고 대기·처리·완료·실패 상태를 Server-Sent Events로 전달
- 상용 OCR/Vision API 응답을 공통 스키마로 정규화하는 어댑터 계층 설계
공급자별 OCR 응답을 하나의 필드 스키마로 정규화해 이후 검수와 룰 평가가 공급자에 의존하지 않는 구조를 구축합니다.


룰 모델 관리
검수에 사용하는 룰을 조건·동작 구조로 정의하고 우선순위와 적용 문서 유형을 설정하며 버전을 관리합니다. 조건 빌더, 우선순위 정렬, 버전 비교 화면을 포함합니다.
- JSON 기반 룰 모델과 조건 평가기(비교·범위·정규식·필드 간 참조)를 TypeScript로 설계
- 룰 저장 시 불변 버전 레코드를 생성하고 버전 간 차이를 비교하는 화면 구현
- Zod 스키마로 룰 정의를 검증해 잘못된 조건이 저장되기 전에 차단
룰을 코드 변경 없이 화면에서 정의하고 버전으로 관리하는 구조로, 지원할 룰 유형을 단계적으로 확장할 수 있게 설계합니다.


룰 시험 실행
샘플 문서의 추출값을 입력으로 선택한 룰 버전을 시험 실행하고 조건별 통과·실패 사유를 단계별로 확인합니다. 실제 검수 건에 반영하기 전에 룰 결과를 미리 검증하는 샌드박스 화면입니다.
- 평가기가 조건별 중간 결과를 트레이스로 반환하도록 구현해 실패 사유를 단계별 표시
- 시험 실행은 읽기 전용 컨텍스트로 분리해 검수 데이터와 이력에 영향을 주지 않도록 설계
- 여러 샘플을 한 번에 실행하는 일괄 시험과 결과 표 내보내기 구성
룰 변경 전에 샘플 문서 기준으로 결과를 확인하는 시험 실행 구조를 구현해 룰 오류가 검수 건에 반영되기 전에 걸러냅니다.


프로젝트 진행 단계
검수 흐름 분석 및 데이터 모델 설계 · 2026.10
문서·추출 필드·검수 상태 전이 정의, 룰 버전 구조를 포함한 PostgreSQL 테이블 설계
OCR 어댑터·검수 큐·룰 평가기 구현 · 2026.10
상용 OCR/Vision API 정규화 계층, Bull 비동기 검수 작업, 룰 평가기와 버전 관리 API 구현
3분할 검수 화면 개발 · 2026.10
원본 이미지와 추출값 양방향 연결, 신뢰도 배지, 수정·승인 화면 React로 구현
통합 테스트 및 샘플 검증 · 2026.10
샘플 문서 기반 시나리오 테스트와 룰 회귀 테스트 케이스 구성
개발 결과
기술적 주안점
- 원본과 추출값을 같은 화면에서 좌표 단위로 연결해 검수자가 불일치 항목부터 순서대로 확인하는 흐름을 구현합니다
- 공급자별 OCR 응답을 하나의 필드 스키마로 정규화해 이후 검수와 룰 평가가 공급자에 의존하지 않는 구조를 구축합니다
- 룰을 코드 변경 없이 화면에서 정의하고 버전으로 관리하는 구조로, 지원할 룰 유형을 단계적으로 확장할 수 있게 설계합니다