실습 개요
OCR 텍스트와 이미지 단서를 결합해 Gemma 프롬프트 기반 분류기를 작성하고 검증
이 페이지는 단순 OCR 데모가 아니라, 회계 증빙이 실제 전표로 이어지는 프로그램을 작성한다는 전제로 구성하였습니다. 학습자는 Python 기반 백엔드, 로컬 OCR 엔진, Gemma 로컬 AI 추론, 검증 화면, 회계 데이터베이스, 감사로그를 하나의 업무 시스템으로 연결합니다.
Gemma는 외부 API로 증빙을 보내지 않는 로컬 AI 구성의 핵심으로 사용합니다. 교육에서는 모델 자체를 맹신하지 않고, 룰 기반 검증·사람 승인·감사증적을 결합해 회계감사와 전산감사 모두에서 설명 가능한 결과를 구축하는 것을 목표로 합니다.
업무 시나리오
- 회계 자동화의 첫 오류는 문서 종류를 잘못 판단하는 데서 발생합니다. 카드영수증을 세금계산서로 분류하면 부가세 처리와 거래처 매핑이 틀어집니다.
- 학습자는 OCR 텍스트의 키워드, 레이아웃 단서, 금액 항목, 사업자번호 패턴을 이용해 문서 분류 흐름을 구성합니다.
로컬 AI 프로그램 구성
| 구성요소 | 역할 | 실습 포인트 |
|---|
| 파일 수집 | 이메일, 스캔 폴더, 사용자 업로드에서 증빙을 접수합니다. | 원본 파일명, 업로드 사용자, 수신시각, 파일 해시를 저장합니다. |
|---|
| OCR 엔진 | 이미지와 PDF에서 텍스트를 추출합니다. | 전처리 전후 OCR 품질을 비교하고 실패 기준을 설수립합니다. |
|---|
| Gemma 추론 | OCR 원문을 문서유형, 회계 필드, 예외 사유로 구조화합니다. | JSON 출력 제한, 근거 텍스트, null 처리, 프롬프트 버전 관리를 실습합니다. |
|---|
| 검증 UI | 담당자가 원본과 AI 결과를 비교하고 수정·승인합니다. | 수정 전후 값, 수정 사유, 승인자, 승인시각을 로그로 남깁니다. |
|---|
| 전표 생성 | 확정된 필드를 계정과목, 부가세 코드, 차변·대변 전표로 변환합니다. | 승인 전 ERP 반영 차단, 계정 매핑표 변경통제를 적용합니다. |
|---|
실제 개발 실습 절차
- OCR 텍스트에서 문서 유형 후보를 추출합니다. 세금계산서, 승인번호, 가맹점, 공급받는자, 과세, 면세, 합계 등의 키워드 사전을 작성합니다.
- Gemma 프롬프트를 작성합니다. 문서유형, 판단근거, 부족한 정보, 신뢰도, 사람이 검토하여야 할 항목을 JSON으로만 답하도록 제한합니다.
- 분류 결과가 낮은 신뢰도일 경우 룰 기반 결과와 Gemma 결과를 비교해 예외 처리합니다. 두 결과가 다르면 검증대기로 이동합니다.
- 분류 모델 평가표를 작성합니다. 정확도뿐 아니라 세금계산서를 카드영수증으로 잘못 분류한 고위험 오류를 별도로 계산합니다.
교육에서는 완성된 정답 프로그램을 복사하지 않고, 작은 기능 단위로 구현한 뒤 테스트 데이터를 통과시키는 방식으로 진행합니다. 예를 들어 OCR 결과가 비어 있는 경우, Gemma 응답이 JSON 형식을 지키지 않는 경우, 공급가액과 부가세 합계가 맞지 않는 경우를 의도적으로 구성하여 방어 로직을 작성합니다.
Gemma 프롬프트·JSON 설계 예시
프롬프트는 회계 판단을 설명 가능하게 구축하기 위해 출력 형식을 제한합니다. 아래 예시는 교육에서 사용하는 기본 구조입니다.
document_type: 세금계산서, 카드영수증, 현금영수증, 거래명세서 등 문서 유형fields: 거래일자, 거래처명, 사업자번호, 공급가액, 부가세, 합계금액, 품목, 결제수단evidence: 각 필드가 OCR 원문 어느 영역에서 추출되었는지 설명하는 근거confidence: 필드별 신뢰도와 전체 신뢰도exceptions: 금액 불일치, 필수값 누락, 중복 의심, 사람이 검토하여야 할 사유
중요한 원칙은 Gemma가 모르는 값을 추측하지 않게 하는 것입니다. 값이 없으면 null로 두고, 검증 화면에서 사람이 검토하도록 설계합니다. 이 원칙이 없으면 AI 자동화가 오히려 회계 오류를 조용히 생성하여낼 수 있습니다.
일반 회계감사와 전산감사 비교
| 구분 | 일반 회계감사 실습 | 전산감사 실습 |
|---|
| 검토 단위 | 표본 증빙과 전표 | 전체 증빙 모집단, 처리상태, 로그, 예외 데이터 |
|---|
| 주요 증거 | 원본 증빙, 전표, 승인 문서 | 원본 해시, OCR 결과, Gemma 응답, 수정로그, 승인로그 |
|---|
| 오류 발견 | 감사인이 표본을 눈으로 검토 | 검증 규칙과 데이터 분석으로 전체 오류 후보 탐지 |
|---|
| 위험 관점 | 전표 금액·계정 오류 | 시스템 로직 오류가 대량 전표에 반복 적용될 위험 |
|---|
| 교육 산출물 | 전표 검토 체크리스트 | 프로그램 테스트 케이스, 로그 검증표, 예외 분석표 |
|---|
- 일반감사는 표본 증빙을 실무 절차에 따라 보고 문서 유형이 전표와 일치하는지 검토합니다.
- 전산감사는 전체 모집단에 대해 문서 유형별 분류 정확도, 예외율, 오분류 수정 이력을 분석합니다.
- 고위험 오분류가 발생했을 때 전표 생성이 차단되는지 검토하는 것이 핵심입니다.
테스트 데이터와 검증 기준
각 페이지에서는 정상 증빙만 사용하지 않습니다. 실제 운영에서 문제가 되는 데이터를 섞어 자동화 품질을 검토합니다.
- 정상 세금계산서 20건, 정상 카드영수증 20건, 현금영수증 10건을 기본 모집단으로 준비합니다.
- 흐릿한 이미지, 기울어진 이미지, 금액이 잘린 이미지, 사업자번호가 누락된 이미지, 합계금액이 OCR에서 잘못 읽힌 이미지를 오류 케이스로 넣습니다.
- 동일 승인번호 또는 동일 파일 해시를 가진 중복 증빙을 넣어 중복 검출 로직을 검토합니다.
- 검증 기준은 단순 성공 여부가 아니라 필드별 정확도, 예외 검출률, 승인 전 차단률, 사용자 수정률, 로그 완전성으로 평가합니다.
교육 진행 흐름
- 강사가 회계 업무 시나리오와 감사위험을 설명합니다.
- 학습자가 입력 데이터와 필요한 테이블을 실무 절차에 따라 설계합니다.
- OCR 결과를 검토하고 Gemma에 전달할 프롬프트와 JSON 스키마를 작성합니다.
- AI 응답을 DB에 저장하고 검증 규칙을 통과하지 못한 건을 예외 큐로 보냅니다.
- 일반 회계감사 방식으로 표본을 검토한 뒤, 전산감사 방식으로 전체 모집단과 로그를 분석합니다.
- 마지막에는 프로그램 기능, 통제 설계, 테스트 결과를 하나의 조서형 산출물로 제출합니다.
최종 산출물
- 업무흐름도와 시스템 구성도
- 입력 데이터 명세서와 DB 테이블 초안
- Gemma 프롬프트 버전과 JSON 응답 예시
- OCR·AI 추출 결과 검증표
- 예외 목록, 처리 결과, 개선권고안
- 일반 회계감사 절차와 전산감사 절차 비교 조서
이 산출물은 단순 교육 과제가 아니라 포트폴리오로 사용할 수 있게 구성합니다. 지원자는 회계 업무를 이해하고, 로컬 AI를 활용한 자동화 흐름을 구축할 수 있으며, 동시에 감사 가능한 통제 설계를 설명할 수 있다는 점을 보여줄 수 있습니다.