
금융·정산 · 소프트웨어 개발
금융 정산 원장 플랫폼
여러 채널의 거래를 하나의 원장으로 모아, 마감 차이의 원인을 거래 단위로 추적하는 정산 시스템입니다.
문제
채널마다 거래 파일 형식과 마감 시각이 달라, 차이가 나도 어느 수수료 규칙에서 어긋났는지 다음 날이 되어야 보였습니다. 재처리는 하루치를 통째로 다시 돌리는 방식이었습니다.
접근
- 01거래, 수수료, 정산, 지급을 분리한 원장 모델을 두고 각 상태 전이를 명시했습니다.
- 02수집 API에 멱등 키를 넣어 같은 파일이 두 번 들어와도 원장이 늘지 않게 했습니다.
- 03차이 금액에서 원인 거래와 적용된 수수료 규칙으로 내려가는 대사 화면을 만들었습니다.
- 04재처리 단위를 일자 전체가 아니라 실패한 구간으로 제한했습니다.
구성
- Java
- Spring Boot
- MySQL
- Redis
- Kafka
설계 목표
- 마감 확인을 익일에서 당일 업무 시간 안으로 당기는 것을 목표로 설계합니다.
- 재처리 범위를 실패 구간으로 줄여 배치 시간을 예측 가능하게 만듭니다.
- 마감 값을 바꾼 사람과 시각이 감사 로그에 남습니다.
