Phase 9 · 자율형 AI 회계 에이전트

회계사가 지시하고 AI가 실행하는 업무 Workflow Engine

46단계까지는 회계사가 데이터를 입력하면 보여주는 '수동 시스템'에 가까웠습니다.
47단계부터는 회계사가 증빙 1,000장을 밀어넣으면, AI가 스스로 OCR → 검증 → 계정과목 추천 → 이상거래 분석의 파이프라인을 비동기로 척척 실행하고, 마지막에 "이 18건만 검토 및 승인해 주십시오"라고 결재판을 올리는 진정한 에이전틱 워크플로우(Agentic Workflow)를 구축합니다.

예상 학습 시간 : 500분
난이도 : ★★★★★ (최상)
사전 단계 : SaaS 실제 서버 배포 (Step 46)
다음 단계 : 48단계 - 외부 수집 및 자동결산 마스터봇 (예정)
01

왜 Workflow 자동화가 필요한가?

1,000건의 세금계산서를 회계사가 일일이 눈으로 보고 입력하는 것은 엑셀 시절의 방식입니다. 진정한 실무 자동화란, 1,000건을 통째로 시스템에 밀어넣었을 때 시스템이 알아서 검증을 거쳐 정상 처리된 982건은 자동 분개하고, '이상징후(Risk)'가 있거나 '추천 신뢰도가 낮은' 18건만 골라내어 회계사에게 보고하는 것입니다.

세금계산서 100건 업로드 ↓ [ 백그라운드 자동 Workflow 생성 ] ↓ Task 1: 자동 OCR Task 2: 거래처/금액 교차 검증 Task 3: AI 계정과목 추천 Task 4: Risk Score(이상거래) 산정 ↓ 정상 82건 (자동승인 대기) / 의심 18건 (수동검토 요망)
02

비동기 처리를 위한 Redis와 Celery

웹 서버(FastAPI)가 증빙 100장을 실시간으로 OCR 처리하려고 하면, 응답 시간이 5분을 넘어가 브라우저가 다운됩니다. 이를 막기 위해 '대기열(Queue)'을 도입합니다.

사용자가 파일을 올리면 웹 서버는 즉시 "접수되었습니다" 라고 응답하고 빠집니다. 그 뒤에서 Redis(메모리 큐)와 Celery Worker가 밤을 새워 순차적으로 OCR 및 분석 작업(Background Job)을 수행하게 됩니다.

03

작업 상태 설계 (State Management)

백그라운드에서 진행되는 수많은 작업들을 제어하기 위해 workflowsworkflow_tasks DB 테이블을 설계하고, 철저한 상태(Status) 값 기반으로 프로세스를 통제합니다.

  • PENDING: 큐에 들어가서 순서를 기다리는 중
  • PROCESSING: Celery Worker가 현재 열일하는 중
  • FAILED: 에러 발생 (재시도 로직 수행 후 실패 시 관리자 알람)
  • WAITING_APPROVAL: AI 처리가 끝나고 회계사의 승인을 기다림
  • APPROVED / REJECTED: 회계사의 결정이 완료됨 (DB 장부 반영)
04

AI Agent와 Tool Calling

이제 AI는 단순한 질문-답변(Q&A) 챗봇을 넘어 스스로 계획을 세우는 Agent(에이전트)가 됩니다. 회계사가 "이번 달 증빙 싹 검토해서 이상한 것만 알려줘" 라고 지시하면, AI는 자신이 가진 도구상자(Tools: get_documents, run_ocr, analyze_risk)에서 필요한 파이썬 함수를 꺼내어 스스로 조합하고 실행한 뒤 결과를 보고합니다.

05

가장 중요한 철학: Human-in-the-Loop

AI가 아무리 똑똑해도 회계 데이터를 마음대로 UPDATE, DELETE 하게 두면 대형 사고가 납니다. 이것이 AI 에이전트 시스템에서 가장 중요한 방어선인 Human-in-the-Loop (사람의 개입)입니다.

권한의 분리 (Read vs Write)

AI는 데이터를 마음껏 조회(Read)하고 판단할 수 있지만, 장부를 수정/저장(Write)하는 행위는 항상 'Draft(가안)' 형태로 WAITING_APPROVAL 상태에 머물러야 합니다. 최종적으로 회계사가 화면에서 [승인] 버튼을 클릭할 때만 실제 DB 트랜잭션이 커밋(Commit)됩니다.

06

자동 예약 작업 (스케줄링)

Workflow는 회계사가 버튼을 누를 때뿐만 아니라 시간에 맞춰 스스로 작동할 수 있습니다.

# 매월 1일 새벽 2시, 전월 마감 데이터를 분석하여 자동 보고서 생성
@scheduler.scheduled_job('cron', day=1, hour=2)
def monthly_closing_workflow():
    workflow = Workflow.create("MONTHLY_REPORT")
    workflow.add_task(analyze_sales)
    workflow.add_task(analyze_expenses)
    workflow.add_task(ai_summary)
    workflow.enqueue()  # Redis 큐로 전송

회계사가 아침에 출근하면 "8월 자동결산 분석이 완료되어 승인 대기 중입니다." 라는 알람만 받게 됩니다.

07

48단계 예고: 완전 자동화의 끝판왕 (마스터봇)

지금까지 우리는 사람이 '업로드'한 데이터를 기반으로 돌아가는 자동화를 구축했습니다.

다음 48단계에서는 이 훌륭한 Workflow Engine을 외부 세상(국세청 전자세금계산서, 은행 계좌 API, 이메일 등)과 직접 연결합니다. 데이터가 자동으로 수집되고, 47단계의 엔진을 타서 자동으로 분류된 후, 회계사에게 결재판만 올라오는 '월말결산 완전 자동화 마스터봇'의 영역으로 진입합니다!

Step 46 : SaaS 실제 서버 배포 Phase 9 공사중