조각난 파이썬 코드들을 모아, 상용 회계 SaaS 플랫폼 완성하기
지금까지 배운 데이터 정제, 엑셀 자동화, OCR 증빙 인식, 이상탐지 알고리즘은 훌륭하지만 각기 흩어져 있는 단일 파이썬 스크립트에 불과합니다.
이번 43단계에서는 이 모든 기능들을 MariaDB(데이터베이스), FastAPI(백엔드 API), 웹 프론트엔드와 결합하여 수많은 거래처가 동시에 로그인하여 사용할 수 있는 실제 B2B SaaS(Software as a Service) 애플리케이션으로 최종 조립합니다.
단일 스크립트에서 실제 서비스(Service)로
터미널에서 python test.py를 실행해서 혼자 엑셀을 돌려보는 시대는 지났습니다. 회계사무소의 팀원 전체, 더 나아가 여러 기장 거래처 대표님들까지 웹 브라우저 하나로 이 강력한 기능을 누리게 만들려면 완전한 웹 어플리케이션(Web App) 구조를 가져야 합니다.
Web + DB 연동 아키텍처
우리가 만들 SaaS 플랫폼의 큰 그림(Architecture)은 다음과 같습니다.
MariaDB: 중앙 집중식 데이터 관리
엑셀 파일(transactions.xlsx)을 읽고 쓰는 방식은 동시성(여러 명이 동시에 접속)과 보안 처리에 한계가 명확합니다. 모든 데이터는 관계형 데이터베이스(RDBMS)인 MariaDB(또는 MySQL, PostgreSQL)로 이관됩니다.
엑셀은 100만 줄을 넘어가면 멈추지만, RDBMS는 1,000만 건의 결제 내역 중 특정 거래처의 8월 데이터를 0.1초 만에 찾아줍니다. 또한 37단계에서 배운 'Tenant 분리(office_id)'를 통해 사무소 간의 데이터를 완벽하게 격리할 수 있습니다.
FastAPI (백엔드 서버 구축)
프론트엔드(화면)와 DB 사이에서 데이터를 가공하고 넘겨주는 중개인 역할인 백엔드 프레임워크로는 빠르고 비동기 처리에 강력한 파이썬의 FastAPI를 사용합니다.
from fastapi import FastAPI, Depends import db_connection app = FastAPI() @app.get("/api/dashboard/sales") async def get_sales_data(office_id: int = Depends(get_current_user)): # 1. 로그인된 유저의 사무소 권한에 맞는 데이터만 DB에서 조회 data = db_connection.query(f"SELECT * FROM sales WHERE office_id = {office_id}") # 2. JSON 형태로 화면(프론트엔드)에 반환 return {"status": "success", "data": data}
로그인 및 보안 인증 (JWT 연동)
아무나 http://내서버/api/dashboard 주소를 쳐서 회계 장부를 볼 수 있게 놔둘 순 없겠죠? 로그인을 통해 발급받은 JWT(JSON Web Token)를 가진 유저만 API를 호출할 수 있도록 보안 시스템을 씌워줍니다.
과거의 알고리즘들을 하나의 모듈로(Import) 결합
이전에 만들어둔 ocr.py, risk_score.py 등의 스크립트를 FastAPI 내부에서 모듈로 임포트(Import)하여 사용합니다. 누군가 프론트엔드에서 영수증 사진을 업로드하면 백엔드가 ocr.py를 호출하고 결과를 DB에 저장하게 됩니다.
사용자가 보게 될 프론트엔드 화면 구성
최종적으로 회계사와 거래처 고객들은 Streamlit이나 React, Vue.js로 만들어진 예쁜 웹 페이지에 접속하여 다음 3가지 메인 탭을 이용하게 됩니다.
- 증빙 업로드 (40단계 연동): 다량의 영수증 사진을 드래그 앤 드롭으로 업로드하면 서버에서 OCR이 돌아가 매칭 결과를 띄워줍니다.
- 이상거래 검토함 (41단계 연동): 서버가 매일 밤 자동으로 계산한
risk_score를 바탕으로 HIGH 등급을 받은 거래들만 빨간 불빛과 함께 리스트업 됩니다. - 재무 대시보드 (42단계 연동): DB의 실시간 데이터를 긁어와 Plotly 차트와 AI 브리핑을 보여주는 경영진용 화면입니다.
44단계 예고: 챗봇형 "AI 회계 분석 Assistant"
웹 기반의 상용 플랫폼 아키텍처까지 갖추며 회계 데이터 처리 파이프라인의 종점을 찍었습니다!
다음 44단계에서는 이 튼튼한 플랫폼 위에 화룡점정 격인 "AI 채팅 봇(Assistant)"을 달아줍니다.
이제 회계사가 대시보드 빈칸에 "작년 대비 복리후생비가 급증한 이유가 뭐야? 관련 거래처 리스트 좀 뽑아줘." 라고 자연어로 질문하면, AI가 백엔드 DB를 직접 뒤져서 표로 답변해주는 궁극의 에이전트를 만들게 됩니다.