고객의 카드 결제는 성공적으로 끝났습니다.
하지만 우리 회사의 입장에서는, 이야기가 여기서 끝나지 않습니다.
고객이 지불한 돈이, 수많은 수수료를 거쳐, 마침내 우리 회사의 통장에 정확히 입금되어야 비로소 한 건의 거래가 완료됩니다.
이 보이지 않는 돈의 흐름을 맞추고 검증하는 과정이 바로 ‘정산‘입니다.
이번 글에서는 이 중요한 ‘정산 시스템’을 QA가 어떻게 테스트해야 하는지 알아보겠습니다.

이 글에서 다루는 것
- 정산 시스템의 개념과 동작 원리
- QA의 핵심 검증 영역: 데이터 대사(Reconciliation)
- 수수료 및 정산 금액 계산 로직 테스트
- 정산 테스트 실무 꿀팁
‘정산’, 정확히 무엇인가요?
‘정산’은 일정 기간 동안 발생한 모든 거래 내역을 최종적으로 확정하고, 각종 수수료를 계산하여, 실제 돈을 주고받는 과정을 의미합니다.
특히 PG(결제 게이트웨이)사를 통한 결제에서는, PG사가 우리를 대신해 받은 돈을 수수료를 떼고 우리에게 입금해 주는 과정 전체가 ‘정산’에 해당합니다.
- 비유:
- 하루 장사를 마친 가게 주인이, 카드 단말기 회사와 오늘 총 얼마를 팔았고, 수수료는 얼마이며, 그래서 최종적으로 얼마를 받아야 하는지 모든 내역을 맞춰보는 ‘일일 결산’ 과정과 같습니다.
정산 프로세스, 어떻게 흘러가나요?
정산은 보통 사용자가 없는 심야 시간에 ‘배치(Batch)’ 작업으로 이루어집니다.
- 1. PG사 데이터 수신:
- 매일 정해진 시간에, PG사로부터 어제의 모든 거래(승인, 취소) 내역이 담긴 거대한 ‘정산 데이터 파일’을 전달받습니다.
- 2. 데이터 대사 (Reconciliation):
- PG사가 준 데이터와, 우리 서비스 데이터베이스에 기록된 거래 데이터를 비교하여, 누락되거나 불일치하는 내역이 없는지 하나하나 맞춰보는 과정입니다.
- 3. 수수료 계산:
- 일치하는 각 거래마다, 계약된 수수료율을 적용하여 우리 회사가 PG사에 지불해야 할 총 수수료를 계산합니다.
- 4. 최종 정산 금액 확정 및 검증:
(총 거래액) - (총 취소액) - (총 수수료)공식을 통해, PG사가 우리에게 입금해야 할 최종 정산 금액을 확정합니다.- 그리고 실제로 입금된 금액과 이 금액이 일치하는지 확인합니다.
QA는 ‘정산 테스트’에서 무엇을 검증해야 하나요?
‘정산 테스트’의 핵심은 ‘데이터의 100% 정합성‘을 검증하는 것입니다.
- 1. 데이터 대사(Reconciliation) 검증:
- QA는 의도적으로 ‘불일치 데이터’를 만들어, 정산 시스템이 이를 어떻게 찾아내고 담당자에게 경고(Alert)하는지 반드시 테스트해야 합니다.
- 테스트 시나리오:
- 우리 DB에는 있는데, PG사 데이터에는 없는 ‘누락 거래’ 만들기
- PG사 데이터에는 있는데, 우리 DB에는 없는 ‘유령 거래’ 만들기
- 양쪽에 모두 있지만, 금액이나 상태가 서로 다른 ‘불일치 거래’ 만들기
- 2. 수수료 계산 로직 검증:
- 다양한 수수료 정책에 따라 계산이 정확한지 검증합니다.
- 테스트 시나리오:
- 정액 수수료 vs 정률 수수료
- 카드 종류(신용/체크)나 결제 수단(계좌이체 등)에 따른 차등 수수료
- 특정 기간의 프로모션으로 인한 수수료 면제/할인 정책
- 3. 최종 정산 금액 검증:
- 가장 중요한 테스트입니다.
- QA는 테스트 환경에서 발생한 거래 데이터 전체를 기반으로, 예상되는 최종 정산 금액을 엑셀이나 별도 스크립트를 이용해 직접 계산해야 합니다.
- 그리고, 시스템이 계산한 최종 정산 금액과 내가 계산한 금액이 1원의 오차도 없이 완벽하게 일치하는지 비교 검증합니다.
현직자만 아는 정산 테스트 꿀팁
꿀팁 1: 다양한 예외 케이스를 고려하라
정산 과정에는 수많은 예외 케이스가 존재합니다. ‘승인 후 바로 다음 날 매입되지 않고, 며칠 뒤에 매입되는 거래(미매입 거래)’, ‘승인과 취소가 같은 정산 주기에 일어난 거래’ 등, 복잡한 케이스에 대한 정산 처리가 정확한지 집중적으로 검증해야 합니다.
꿀팁 2: 재처리(Re-processing) 시나리오가 중요하다
만약 새벽에 정산 배치 작업이 중간에 실패했다면 어떻게 될까요? QA는 실패한 작업을 ‘재처리’했을 때, 이미 처리된 거래가 중복으로 계산되지는 않는지, 누락되는 데이터는 없는지를 반드시 테스트해야 합니다.
결론: 회사의 수익을 지키는 최종 방어선
‘정산 테스트’는 서비스의 수익과 직접적으로 연결된, 가장 중요한 데이터 검증 활동 중 하나입니다.
이 과정에서의 작은 오류 하나가 회사에 직접적인 금전적 손실을 입힐 수 있습니다.
QA는 회계 담당자보다 더 꼼꼼한 눈으로, 보이지 않는 돈의 흐름을 추적하고 데이터의 정확성을 보증해야 합니다.
성공적인 ‘정산 테스트’는 우리 회사의 수익을 지키는 가장 튼튼한 최종 방어선입니다.
부록: 정산 테스트 미니 체크리스트 ✅
- 우리 DB의 거래 건수/총액과 PG사의 정산 데이터가 일치하는가?
- 수수료 계산 시, 소수점 처리(반올림/버림) 정책이 명확하고 정확한가?
- 결제 취소(부분/전체) 시, 수수료 환불 정책이 올바르게 적용되는가?
- 정산 배치 작업 실패 시, 알림 및 재처리 메커니즘이 정상 동작하는가?
- 정산 리포트의 모든 숫자가 실제 데이터와 일치하는가?
참고 자료 (References)
- 토스페이먼츠 – 정산 (국내 PG사의 정산 주기 및 프로세스 설명)
- Stripe Docs – Payouts and reconciliation (글로벌 결제 솔루션의 정산 관련 공식 문서)