결제 시스템 (PG)
대사 처리 배치
카테고리 : 결제 시스템 (PG)
대사 처리 배치
개요
- 대사 처리 배치는 매일 8시에 실행되는 배치 프로그램입니다. 이 프로그램은 각각의 대사 테이블에서 미처리된 데이터를 확인하여 대사 처리를 합니다.
- 대사 처리 배치는 PG사의 결제 정보를 관리하기 위한 시스템으로, 주로 결제 수단과 결제 건수, 금액 등을 확인하고 대사를 처리합니다.
- 기간: 2021.04 ~ 2023.07
- 인원: 2명
기술 스택
- JAVA 11
- Spring Boot 2.7.7
- Springframework 5.3.24
- Spring Batch
- MariaDB
- JDBC
- Git
- Jenkins
기술적인 부분
- Spring Batch: Spring Batch는 대용량의 데이터를 처리하는 일괄 처리 작업에 적합한 프레임워크입니다. 이 프로젝트에서는 Spring Batch를 사용하여 대사 처리를 수행합니다.
- Step 병렬 처리: 각 대사 처리 Step을 병렬적으로 처리하여 대량의 데이터를 빠르게 처리합니다.
기능 요약
- 매일 8시분에 대사 처리 배치 실행
- 거래 대사 처리: KSNET 거래 대사, 웰컴 온라인 거래 대사, 웰컴 온라인 거래 대사 처리
- 매입 대사 처리: KSNET 매입 대사 처리
- 정산 대사 처리: KSNET 정산 대사, 웰컴 온라인 정산 대사, 웰컴 온라인 정산 대사 처리
상세 설명
- 배치 프로그램은 매일 8시에 실행됩니다
- 거래 대사 처리 Step의 KSNET 거래 대사 Step, 웰컴 온라인 거래 대사 Step, 웰컴 오프라인 거래 대사 Step을 병렬 적으로 실행합니다.
- 매입 대사 처리 Step의 KSNET 매입 대사 Step을 처리 실행합니다.
- 정산 대사 처리 Step의 KSNET 정산 대사 Step, 웰컴 온라인 정산 대사 Step, 웰컴 오프라인 정산 대사 Step을 병렬 적으로 실행합니다.
- 각각의 STEP Reader에서 해당하는 history 테이블에 미처리 데이터건을 조회하여 객체로 변환합니다.
- Processor에서 객체 인스턴스를 확인하고 조건에 부합하게 삽입 및 수정할 객체를 만들어서 Map에 각자 의미하는 Key에 인스턴스를 만들어서 담습니다.
- Writer는 Map의 키들의 인스턴스를 확인하여 NULL이 아닌 각 키에 해당하는 Writer을 실행하여 업데이트 및 저장을 수행합니다. 구체적으로는 다음과 같은 작업을 수행합니다.
- 미처리 거래건 저장: 각 거래건에 대해 대사 처리 결과를 저장합니다.
- 미처리 매입 정보 업데이트: 매입 대사 결과를 처리하여 매입 정보를 업데이트합니다.
- 미처리 정산 정보 업데이트: 정산 대사 결과를 처리하여 정산 정보를 업데이트합니다
- 각각의 히스토리 테이블에 대사처리 결과 업데이트: 대사 처리 결과를 해당 거래에 대한 히스토리 테이블에 업데이트합니다.
성과
- 대사 처리 배치의 안정적인 운영으로 결제 정보 관리에서 발생하는 문제점을 미연에 방지할 수 있었습니다.
- 정기적인 대사 처리로 인해 잘못된 거래나 매입, 정산 정보를 빠르게 파악할 수 있어 문제가 발생하기 전에 대처할 수 있습니다.
- 대사 처리 속도를 향상시켜, 대량의 결제 데이터도 빠르게 처리할 수 있도록 개선했습니다.
- 거래 대사 처리, 매입 대사 처리, 정산 대사 처리를 자동화하여 인력과 시간을 절약할 수 있었습니다.
개선사항
- 현재는 매일 8시에 배치가 실행되도록 설정되어 있지만, 이외의 시간에도 수동으로 실행할 수 있는 기능이 추가되면 더욱 편리할 것입니다
- 대사 처리 배치 실행 후, 결과 보고서를 자동으로 생성하여 관리자에게 제공하는 기능을 추가할 수 있습니다.