8퍼센트 코어뱅킹 팀이 세금과 각종 수수료 정산을 수동 월별 처리에서 자동화로 바꾼 기록이다. 과거에 쓰던 정산 방법과 그로 인해 발생한 문제, 그리고 개선한 방식과 그 이유를 공유한다. 정산은 수익이나 비용과 관련해 재정적인 정리와 계산을 수행하는 과정이며 이 회사에서 처리하는 종류는 6가지다.
핵심 포인트- 한 달에 한 번씩 정산 종류별로 수동으로 총 6번 정산하는 방식이었다.
- 기존 코드에 멱등성이 없어 오류나 실수가 있으면 중복정산이나 오정산이 발생했다.
- 지난 한 달 동안 저장된 데이터를 통해 정산하기 때문에 과거 데이터를 추적하고 수정하기가 어려웠다.
- 정산 과정은 정산금 계산, 정산 대상 계좌에서 정산 계좌로의 지급, 정산 계좌에서 법인 계좌로의 출금 세 단계로 이뤄진다.
- 정산금 계산은 한 달 동안 저장된 데이터를 기반으로 정산 대상 계좌별로 수행한다.
상세 정리- 담당 범위: 2022년 2월에 합류한 주니어 개발자가 세금 및 각종 수수료 정산 업무를 맡고 있다.
- 지급 방식: 정산 대상 계좌에서 정산 계좌로 개별적으로 정산금을 지급하는 구조다.
- 출금 방식: 정산 계좌에 모인 정산금을 법인 계좌로 출금해 마무리한다.
- 문제 1 수동 반복: 월 1회씩 6종을 각각 수동으로 돌려야 해 운영 부담이 컸다.
- 문제 2 멱등성 부재: 같은 작업을 두 번 실행하면 결과가 달라져, 오류가 나거나 실수했을 때 중복정산과 오정산으로 이어졌다.
- 문제 3 추적성: 월 단위로 쌓인 데이터를 한꺼번에 다루는 구조라 과거 시점의 데이터를 되짚어 확인하거나 고치기 어려웠다.
- 글의 목적을 과거 방식과 문제점, 현재 개선한 방식과 그 이유를 함께 공유하는 데 둔다고 밝힌다.
왜 읽나금융 정산처럼 재실행 안전성이 중요한 배치를 수동으로 돌리고 있는 팀에게, 멱등성 부재가 어떤 사고로 이어지는지와 자동화 착수의 문제 정의를 보여준다.