← 포트폴리오 🔍 파싱 · 자동화
DESKTOP APP · RPA · RULE ENGINE

Parsing Auto — 세금계산서 파싱 + 경비신청서 자동화

매월 반복되는 "세금계산서 수신 → 경비신청서 작성" 업무를, 규칙으로 확정 가능한 부분은 완전자동화하고 애매한 판단만 AI가 보조하는 구조로 설계한 Windows 데스크톱 프로그램. 최종 제출은 반드시 사람이 클릭합니다.

📦 PyInstaller 패키징 완료 · 더블클릭 실행 가능한 단일 .exe 배포
🐍 Python 🎭 Playwright 🔐 Windows 자격증명 관리자(keyring) 🖥️ CustomTkinter GUI 🩺 --doctor 자가진단 명령 ⚠️ 데스크톱 프로그램 · 로컬 실행 전용 (웹 URL 아님)

어떻게 동작하나

Extract → Transform → Input, 규칙으로 확정 가능한 3단계까지는 완전자동화합니다.

EXTRACT
📥

무인 수집

세금계산서 수신 전용 메일함(2차인증 없음)에 자동 로그인해 대상 메일을 식별하고, 거래처별로 다른 발행 플랫폼에 맞는 파서로 값을 추출합니다.

TRANSFORM
🧮

규칙 검증 + AI 보조

공급가액+세액=합계, 거래처 매칭처럼 확정 가능한 것은 규칙엔진으로 우선 검증하고, 표기 차이처럼 애매한 것만 AI가 보조 판단합니다.

INPUT
📝

경비신청서 자동채움

그룹웨어 경비신청서 폼에 값·증빙파일·결재선을 자동으로 채워 넣습니다. 직접 POST로 조작하지 않고 화면 폼 자동화로만 동작합니다.

📥 무인 수집  →  🧮 규칙 검증  →  🤖 AI 보조판단(애매한 것만)  →  📝 폼 자동채움
🔒

VERIFY — 사람 확인 게이트 (자동화하지 않는 마지막 한 걸음)

그룹웨어 로그인은 2차인증(OTP)이 있어 원리적으로 무인이 불가능합니다. 프로그램은 "아침에 로그인만 하면 신청서가 채워져 있는" 상태까지만 만들고, 검토와 제출 버튼 클릭은 항상 사람이 합니다. 처리 중에는 언제든 ESC 비상정지로 즉시 멈출 수 있습니다.

완전 자동화나 LLM API 판단에 그대로 맡기기 전에, 사람이 한 번 더 확인하는 구조를 먼저 세운 것 — DX에서 AX(자율화)로 넘어가는 초입 단계인 셈입니다.

배포 구조 — 실행파일 하나로

스크립트가 아니라 더블클릭으로 실행되는 완성형 프로그램으로 패키징했습니다.

dist/ParsingAuto/ ParsingAuto.exe ← 더블클릭 실행 (인자 없으면 GUI로 시작) _internal/ 런타임 종속성 (PyInstaller onedir) config.json 일반 설정 (사람이 직접 편집, 민감정보 없음) 실행.bat $ ParsingAuto.exe --doctor ← 로그인 없이 경로·자격증명·브라우저 실행환경 자가진단 $ ParsingAuto.exe --setup ← 자격증명 최초 등록 (윈도우 자격증명 관리자에 암호화 저장) $ ParsingAuto.exe --collect ← 무인 수집만 실행 (CLI) $ ParsingAuto.exe --write ← 경비신청서 작성까지 실행 (CLI)

얇은 런처가 인자 유무로 GUI/CLI 모드를 구분합니다. 자격증명(비밀번호 등)은 평문 파일이 아니라 Windows 자격증명 관리자에 암호화 저장되어, exe와 함께 배포해도 안전합니다.

👆 지금 바로 체험해보세요

웹 서비스가 아니라 실제 .exe 프로그램 안에서 일어나는 처리 흐름을 시뮬레이션한 목업입니다. 데이터는 전부 더미입니다.

LIVE DEMO · exe 처리 흐름 시뮬레이션

📥 수신함 → 🧮 규칙 검증 → 📝 신청서 자동채움 — 버튼 하나로 확인

아래 '▶ 자동 처리 시작'을 누르면, 실제 프로그램이 세금계산서 수신함부터 경비신청서 자동채움까지 처리하는 흐름을 그대로 재현합니다.

1수집
2규칙 검증
3신청서 작성
세금계산서 수신함 (더미)
발신거래처합계금액상태
mailing@example.com거래처 A550,000미확인
bill@example.com거래처 B352,000미확인
tax@example.com거래처 C132,000미확인
🧮 규칙 검증 중...
🔒
사람 확인 대기

신청서 3건이 채워졌습니다. 검토 후 제출은 반드시 사람이 그룹웨어에서 직접 클릭합니다.

▲ '▶ 자동 처리 시작'을 눌러 체험을 시작하세요

핵심 기술

화면 구조가 바뀌어도 깨지지 않도록, 좌표가 아닌 DOM·요소 기반으로 설계했습니다.

Playwright · DOM/iframe 기반 파싱 및 폼 자동화
규칙 엔진 · 사칙연산·매칭은 규칙 우선
keyring · Windows 자격증명 관리자 암호화 저장
PyInstaller (onedir) · 단일 실행폴더 패키징
CustomTkinter · 다크모드 지원 데스크톱 GUI
--doctor · 배포환경 자가진단 명령

구조

수집·검증·매칭·작성·저장을 모듈로 분리한 클린 아키텍처.

src/ main.py 진입점 (인자 없으면 GUI, --setup/--collect/--write/--doctor는 CLI) credentials.py 자격증명 저장·조회 (Windows 자격증명 관리자) collector.py 플랫폼별 파서를 인자로 받는 공용 수집기 validator.py 규칙 검증 (금액관계·거래처 매칭) matcher.py 금액 기준 계산서↔명세서 매칭 + 첨부 대상 결정 expense_form.py 경비신청서 폼 자동채움 + 결재선 자동설정 storage.py 처리 결과 저장 + 재개 gui/ app.py CustomTkinter GUI (다크모드·필터·현황패널)

플랫폼별 세부 파서 모듈명·거래처명은 보안상 비공개로 두고 구조만 소개합니다.

안전장치

재무 자동화이기 때문에, 속도보다 되돌릴 수 없는 실수를 막는 것을 우선했습니다.

1확정 가능한 것(사칙연산·목록매칭)은 규칙으로, 애매한 것만 AI로숫자 계산을 AI에 통째로 맡기지 않음
2최종 "제출"은 반드시 사람이 클릭되돌릴 수 없는 행위는 자동화 대상 아님
3처리 중 언제든 ESC로 즉시 비상정지RPA 자동화의 공통 안전장치
4자격증명은 평문 파일이 아닌 Windows 자격증명 관리자exe와 함께 배포해도 안전