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