한 줄 목표
AI가 Server PostgreSQL을 직접 수정하지 않고 CLOVA OCR의 구조화 결과만 반환하면, Server가 문서 소유권·사업장 권한을 검증하고 실행 이력·후보값·HR 검토 결과를 안전하게 저장합니다.
쉽게 말하면: AI는 문서를 읽어 결과를 알려 주고, 실제 DB 기록과 확정은 Server가 담당합니다.
사용자 흐름
- HR이 이미 등록된 Worker Document의 OCR 실행을 요청합니다.
- Server가 JWT의 company 범위에서 Document와 File 소유권을 확인합니다.
- Server가 OCR 실행을 기록하고 AI Internal OCR API에 원본 파일을 전달합니다.
- AI가 정규화된 field와 confidence를 반환합니다.
- Server가 허용 field·타입·requestId를 다시 검증하고 후보 결과를 암호화해 저장합니다.
- 낮은 신뢰도·필수값 누락은 장애가 아니라
REVIEW_REQUIRED로 표시합니다.
- HR이 원본과 대조하여 승인하기 전에는 Worker·Document 확정값을 변경하지 않습니다.
API 범위
Client용 canonical API는 구현 전 #80의 Document 상세 계약과 맞춥니다.
AI Internal API:
Server 구현 범위
저장 구조 원칙
- 기존
worker_document에는 여권번호·외국인등록번호·실명·주소 같은 OCR 개인정보 컬럼을 펼쳐 넣지 않습니다.
- OCR 실행과 후보 결과는
document_ocr_run으로 분리합니다.
- OCR 후보값은 암호화하여 저장하고 일반 로그·오류·Project에 기록하지 않습니다.
- 체류 만료일처럼 실제 업무에 반영할 값도 HR 승인 후에만 갱신합니다.
- 여권번호·외국인등록번호는 MVP에서
worker_sensitive_data로 자동 복사하지 않습니다.
- 실제 개인정보 Pilot 전 #48에서 확정 저장 필요성·조회 권한·보유기간·Vault/KMS 적용을 재결정합니다.
저장소 경계
Server
→ Document/File 소유권 확인
→ AI OCR 호출
→ 결과 검증·암호화 저장
→ HR 검토·감사로그·상태 반영
AI
→ 파일 검증
→ CLOVA Template OCR
→ 허용 field 정규화
→ fields·fieldConfidences 반환
AI에는 Server DB 계정과 Migration 권한을 주지 않습니다.
작업 충돌 방지
#80 병합 전에는 Document Entity·Repository·Flyway를 수정하지 않고, AiOcrClient 계약과 Fake 기반 테스트까지만 진행합니다. Migration은 최신 main에서 다음 사용 가능한 버전을 Draft PR에 먼저 공유합니다.
완료 조건
선행·연계
한 줄 목표
AI가 Server PostgreSQL을 직접 수정하지 않고 CLOVA OCR의 구조화 결과만 반환하면, Server가 문서 소유권·사업장 권한을 검증하고 실행 이력·후보값·HR 검토 결과를 안전하게 저장합니다.
사용자 흐름
REVIEW_REQUIRED로 표시합니다.API 범위
Client용 canonical API는 구현 전 #80의 Document 상세 계약과 맞춥니다.
POST /api/v1/documents/{documentId}/ocr-runs—202 + ocrRunIdAI Internal API:
POST /internal/v1/ocr/worker-documents/{workerDocumentId}Server 구현 범위
AiOcrClientPort와 HTTP Adapterdocument_ocr_run에 실행 메타데이터와 암호화된 후보 결과 저장저장 구조 원칙
worker_document에는 여권번호·외국인등록번호·실명·주소 같은 OCR 개인정보 컬럼을 펼쳐 넣지 않습니다.document_ocr_run으로 분리합니다.worker_sensitive_data로 자동 복사하지 않습니다.저장소 경계
AI에는 Server DB 계정과 Migration 권한을 주지 않습니다.
작업 충돌 방지
#80 병합 전에는 Document Entity·Repository·Flyway를 수정하지 않고,
AiOcrClient계약과 Fake 기반 테스트까지만 진행합니다. Migration은 최신 main에서 다음 사용 가능한 버전을 Draft PR에 먼저 공유합니다.완료 조건
선행·연계