07. 예외처리와 재처리 로직

금액 불일치, 사업자번호 오류, 중복 증빙, 계정과목 불확실, 승인 누락 같은 예외를 잡아 재처리합니다.

실습 개요

예외 큐, 재OCR, 프롬프트 재시도, 담당자 배정, 월말 마감 전 해소율 관리 실습

이 페이지는 단순 OCR 데모가 아니라, 회계 증빙이 실제 전표로 이어지는 프로그램을 작성한다는 전제로 구성하였습니다. 학습자는 Python 기반 백엔드, 로컬 OCR 엔진, Gemma 로컬 AI 추론, 검증 화면, 회계 데이터베이스, 감사로그를 하나의 업무 시스템으로 연결합니다.

Gemma는 외부 API로 증빙을 보내지 않는 로컬 AI 구성의 핵심으로 사용합니다. 교육에서는 모델 자체를 맹신하지 않고, 룰 기반 검증·사람 승인·감사증적을 결합해 회계감사와 전산감사 모두에서 설명 가능한 결과를 구축하는 것을 목표로 합니다.

업무 시나리오

  • 운영 중에는 정상 케이스보다 예외 케이스가 더 중요합니다. 금액 불일치, OCR 실패, 거래처 미등록, 중복 증빙, 승인 누락, 계정 불확실성이 월말 마감을 지연시킵니다.
  • 학습자는 예외 큐를 작성하고 재처리 로직을 설계해 자동화가 멈추지 않도록 합니다.

로컬 AI 프로그램 구성

구성요소역할실습 포인트
파일 수집이메일, 스캔 폴더, 사용자 업로드에서 증빙을 접수합니다.원본 파일명, 업로드 사용자, 수신시각, 파일 해시를 저장합니다.
OCR 엔진이미지와 PDF에서 텍스트를 추출합니다.전처리 전후 OCR 품질을 비교하고 실패 기준을 설수립합니다.
Gemma 추론OCR 원문을 문서유형, 회계 필드, 예외 사유로 구조화합니다.JSON 출력 제한, 근거 텍스트, null 처리, 프롬프트 버전 관리를 실습합니다.
검증 UI담당자가 원본과 AI 결과를 비교하고 수정·승인합니다.수정 전후 값, 수정 사유, 승인자, 승인시각을 로그로 남깁니다.
전표 생성확정된 필드를 계정과목, 부가세 코드, 차변·대변 전표로 변환합니다.승인 전 ERP 반영 차단, 계정 매핑표 변경통제를 적용합니다.

실제 개발 실습 절차

  1. 예외 유형 코드를 정의합니다. OCR_LOW_QUALITY, FIELD_MISSING, AMOUNT_MISMATCH, VENDOR_NOT_FOUND, DUPLICATE_DOC, ACCOUNT_UNCERTAIN, APPROVAL_MISSING을 사용합니다.
  2. 예외별 처리 담당자를 지수립합니다. 이미지 품질은 업로드 부서, 거래처 미등록은 회계 마스터 담당자, 계정 불확실은 회계 검토자가 처리합니다.
  3. 재처리 버튼은 전처리 재실행, OCR 재실행, Gemma 재추출, 수동입력 전환, 반려 요청으로 나눕니다.
  4. 예외 해소 시간, 반복 발생 거래처, 담당자별 미처리 건수를 기록해 운영 대시보드와 연결합니다.

교육에서는 완성된 정답 프로그램을 복사하지 않고, 작은 기능 단위로 구현한 뒤 테스트 데이터를 통과시키는 방식으로 진행합니다. 예를 들어 OCR 결과가 비어 있는 경우, Gemma 응답이 JSON 형식을 지키지 않는 경우, 공급가액과 부가세 합계가 맞지 않는 경우를 의도적으로 구성하여 방어 로직을 작성합니다.

Gemma 프롬프트·JSON 설계 예시

프롬프트는 회계 판단을 설명 가능하게 구축하기 위해 출력 형식을 제한합니다. 아래 예시는 교육에서 사용하는 기본 구조입니다.

  • document_type: 세금계산서, 카드영수증, 현금영수증, 거래명세서 등 문서 유형
  • fields: 거래일자, 거래처명, 사업자번호, 공급가액, 부가세, 합계금액, 품목, 결제수단
  • evidence: 각 필드가 OCR 원문 어느 영역에서 추출되었는지 설명하는 근거
  • confidence: 필드별 신뢰도와 전체 신뢰도
  • exceptions: 금액 불일치, 필수값 누락, 중복 의심, 사람이 검토하여야 할 사유

중요한 원칙은 Gemma가 모르는 값을 추측하지 않게 하는 것입니다. 값이 없으면 null로 두고, 검증 화면에서 사람이 검토하도록 설계합니다. 이 원칙이 없으면 AI 자동화가 오히려 회계 오류를 조용히 생성하여낼 수 있습니다.

일반 회계감사와 전산감사 비교

구분일반 회계감사 실습전산감사 실습
검토 단위표본 증빙과 전표전체 증빙 모집단, 처리상태, 로그, 예외 데이터
주요 증거원본 증빙, 전표, 승인 문서원본 해시, OCR 결과, Gemma 응답, 수정로그, 승인로그
오류 발견감사인이 표본을 눈으로 검토검증 규칙과 데이터 분석으로 전체 오류 후보 탐지
위험 관점전표 금액·계정 오류시스템 로직 오류가 대량 전표에 반복 적용될 위험
교육 산출물전표 검토 체크리스트프로그램 테스트 케이스, 로그 검증표, 예외 분석표
  • 일반감사는 예외 증빙을 표본으로 검토하여 왜 수동 처리되었는지 검토합니다.
  • 전산감사는 예외가 자동으로 식별되고, 해결 전에는 전표 생성이 차단되는지 검토합니다.
  • 반복 예외는 단순 오류가 아니라 마스터 데이터, 교육, 승인 프로세스 문제일 수 있습니다.

테스트 데이터와 검증 기준

각 페이지에서는 정상 증빙만 사용하지 않습니다. 실제 운영에서 문제가 되는 데이터를 섞어 자동화 품질을 검토합니다.

  • 정상 세금계산서 20건, 정상 카드영수증 20건, 현금영수증 10건을 기본 모집단으로 준비합니다.
  • 흐릿한 이미지, 기울어진 이미지, 금액이 잘린 이미지, 사업자번호가 누락된 이미지, 합계금액이 OCR에서 잘못 읽힌 이미지를 오류 케이스로 넣습니다.
  • 동일 승인번호 또는 동일 파일 해시를 가진 중복 증빙을 넣어 중복 검출 로직을 검토합니다.
  • 검증 기준은 단순 성공 여부가 아니라 필드별 정확도, 예외 검출률, 승인 전 차단률, 사용자 수정률, 로그 완전성으로 평가합니다.

교육 진행 흐름

  1. 강사가 회계 업무 시나리오와 감사위험을 설명합니다.
  2. 학습자가 입력 데이터와 필요한 테이블을 실무 절차에 따라 설계합니다.
  3. OCR 결과를 검토하고 Gemma에 전달할 프롬프트와 JSON 스키마를 작성합니다.
  4. AI 응답을 DB에 저장하고 검증 규칙을 통과하지 못한 건을 예외 큐로 보냅니다.
  5. 일반 회계감사 방식으로 표본을 검토한 뒤, 전산감사 방식으로 전체 모집단과 로그를 분석합니다.
  6. 마지막에는 프로그램 기능, 통제 설계, 테스트 결과를 하나의 조서형 산출물로 제출합니다.

최종 산출물

  • 업무흐름도와 시스템 구성도
  • 입력 데이터 명세서와 DB 테이블 초안
  • Gemma 프롬프트 버전과 JSON 응답 예시
  • OCR·AI 추출 결과 검증표
  • 예외 목록, 처리 결과, 개선권고안
  • 일반 회계감사 절차와 전산감사 절차 비교 조서

이 산출물은 단순 교육 과제가 아니라 포트폴리오로 사용할 수 있게 구성합니다. 지원자는 회계 업무를 이해하고, 로컬 AI를 활용한 자동화 흐름을 구축할 수 있으며, 동시에 감사 가능한 통제 설계를 설명할 수 있다는 점을 보여줄 수 있습니다.