회계 밖 세상
(비개발자 CPA가 AI와 함께 감사 도구를 만든 이야기) 3편: 자동화 도구의 설계 본문
3편: 자동화 도구의 설계
감사 도구 설계 – ERP가 다 달라도 돌아가게 만들기
자동화의 가장 큰 걸림돌은 "회사마다 ERP가 다르다"는 것이었다.
SAP, Oracle, 더존, 영림원, 세무사랑... 각 시스템에서 내보내는 분개장의 컬럼명이 전부 다르다. 어떤 회사는 "회계일", 어떤 회사는 "전표일자", 어떤 회사는 "DATE"라고 쓴다.
필드명을 고정하면 범용성이 없다. 그래서 핵심 설계 원칙을 하나 세웠다.
"회사의 필드명을 우리의 분석용 필드에 매핑하는 과정을 거친다."
전체 워크플로우
[Step 1] 분개장 파일 업로드
Excel 또는 CSV 파일을 업로드한다. 시스템이 컬럼 목록을 자동으로 읽어 보여준다.
[Step 2] 필드 매핑
읽어온 컬럼을 표준 필드에 매핑한다.
예: "회계일" → 전표일자, "계정과목" → 계정명, "차변금액" → 차변
- 필수 필드: 전표일자, 계정코드, 계정명, 차변, 대변
- 선택 필드: 전표번호, 적요, 기표자, 승인자, 기표일, 부서, 거래처 등
- 매핑되지 않는 필드는 무시, 없는 필드는 빈 값으로 생성
[Step 3] 기초잔액 업로드 (선택)
별도 파일로 계정코드, 계정명, 증감금액을 업로드한다. 차대구분은 "전기이월", 월은 0으로 자동 설정된다.
[Step 4] 파생 필드 자동 생성
차대구분, 증감, 월을 자동 생성한다.
[Step 5] 데이터 검증
기초잔액 합계, 차대 균형, 월별 균형 등 자동 검증.
[Step 6] 산출물 생성
- 계정별 증감표 (기초/증가/감소/기말)
- 월별 증감표 (기초/1월~12월/기말)
- 가공원장 다운로드 (기초잔액 + 파생필드 포함)
[Step 7] 이상 분개 탐지
- 주말/야간 입력
- 라운드 넘버
- 적요 미입력
- 기표자 = 승인자
- 승인자 미입력
- 결산일 전후
- 통계적 이상 금액
- 비정상 계정 조합
- 역분개 탐지
- 특정 사용자 필터
왜 JavaScript(브라우저)로 만들었나?
처음에는 Python + Streamlit으로 프로토타입을 만들었다. 하지만 배포와 공유를 고려하면 서버가 필요했고, 감사 데이터를 외부 서버에 올리는 것은 보안상 바람직하지 않았다.
그래서 순수 JavaScript로 전환했다. 브라우저에서 모든 처리가 이루어지므로 데이터가 서버로 전송되지 않는다. GitHub Pages에서 무료로 호스팅할 수 있고, 인터넷만 되면 어디서든 사용 가능하다.
사용 라이브러리:
- SheetJS(xlsx.js): Excel 파일 읽기/쓰기
- Chart.js: 시각화
- 그 외 순수 JavaScript
'IT이야기' 카테고리의 다른 글
| (비개발자 CPA가 AI와 함께 감사 도구를 만든 이야기) 5편: 커스텀 도메인 연결하기 (0) | 2026.02.21 |
|---|---|
| (비개발자 CPA가 AI와 함께 감사 도구를 만든 이야기) 4편: GitHub Pages로 무료 배포하기 (0) | 2026.02.21 |
| (비개발자 CPA가 AI와 함께 감사 도구를 만든 이야기) 2편: 저널엔트리테스트란 무엇인가 (0) | 2026.02.21 |
| (비개발자 CPA가 AI와 함께 감사 도구를 만든 이야기) 1편: 왜 감사 도구를 자동화하려 했는가 (0) | 2026.02.21 |
| 뽀모도로 유저 필수템! 화면 위에 떠 있는 플로팅 타이머 추천 (0) | 2026.02.07 |
