결제 시스템 (PG)
멀티 모듈 프로젝트
카테고리 : 결제 시스템 (PG)
멀티 모듈 프로젝트
개요
- 멀티 모듈 프로젝트는 여러 개의 모듈로 구성되어 하나의 대형 프로젝트를 구현하는 방식입니다. 이러한 구조는 각 모듈별로 역할과 책임을 분담하여 효율적으로 개발할 수 있는 장점을 가지고 있습니다. 또한, 모듈 간의 의존성을 줄이고, 코드 유지보수 및 테스트가 용이하도록 구성할 수 있습니다.
- 결제 서비스(PG)의 멀티 모듈 프로젝트는 Scheduling 모듈, 원천사 요청 수신 모듈, 원천사 파일 요청 모듈로 이루어져 있습니다. Scheduling 모듈은 정해진 시간마다 거래 데이터 등록, 전일 승인 금액 기록, 거래 내역 통보 기능을 제공하여 거래 데이터 관리 및 가맹점 편의성을 높입니다. 원천사 요청 수신 모듈은 거래 알림 노티 데이터를 PG에서 처리할 수 있도록 구현하여 거래 처리 속도를 높입니다. 원천사 파일 요청 모듈은 파일 다운로드 요청 및 데이터 등록 기능을 구현하여 데이터 처리의 효율성을 높입니다.
- 멀티 모듈 프로젝트는 각 모듈을 독립적으로 개발하고, 필요에 따라 추가/제거/변경이 가능하도록 설계할 수 있습니다. 또한, 각 모듈을 분리하여 개발하므로 모듈 간의 의존성을 줄이고, 코드 유지보수 및 테스트가 용이해집니다. 이러한 구조는 프로젝트의 규모가 커질수록 더욱 필요하며, 효율적인 개발과 유지보수를 위한 중요한 역할을 합니다.
- 기간: 2021.04 ~ 2023.07
- 인원: 4명
기술 스택
- JAVA 11
- Spring Boot 2.7.7
- Springframework 5.3.24
- MultiModule
- MariaDB
- MyBatis
- Git
- Jenkins
기술적인 부분
- JWT(Json Web Token)를 사용하여 사용자 인증을 처리합니다
- Spring Security를 이용하여 사용자 권한 관리 및 인증 처리를 구현합니다
- Spring Boot와 Springframework를 사용하여 REST API를 구현합니다
- Git을 사용하여 소스 코드를 관리하고 버전을 관리합니다
- Jenkins를 사용하여 빌드 및 배포 자동화를 구현합니다
- MyBatis를 사용하여 SQL 쿼리를 작성하고 실행합니다
- @Scheduled 어노테이션을 이용하여 스케줄링을 처리합니다
- Core Module을 생성하여 공통으로 사용되는 코드를 모듈화하고 다른 Module에서 참조하여 중복을 제거합니다.
기능 요약
- Scheduling
- 원천사 요청 수신
- 원천사 파일 요청
상세 설명
Scheduling
- Scheduling 모듈은 정해진 시간마다 원천사에서 보내온 거래 알림 노티 데이터를 처리하여 거래 데이터를 등록하는 기능을 제공합니다.
- 정해진 시간마다 전일 전체 승인 금액을 기록하여 관리자 페이지에서 전일 승인 금액을 확인할 수 있도록 한다.
- 정해진 시간마다 전일 전체 승인 금액을 기록하고, 가맹점마다 설정된 통보 URL을 통해 거래 내역을 통보합니다.
- 통보 과정에서 실패한 경우 최대 10회까지 5분 간격으로 재통보를 수행합니다.
원천사 요청 수신
- 원천사 요청 수신 모듈은 원천사에서 거래 알림 노티 데이터를 수신합니다.
- PG에서는 단말기 결제인 경우, 원천사에서 PG로 거래 데이터를 받아서 처리합니다.
원천사 파일 요청
- 원천사 별로 거래내역, 정산내역, 매입내역 파일을 요청합니다.
- 원천사에서 파일을 전송할 경우 해당 파일을 읽어서 데이터를 등록합니다.
성과
- Scheduling 모듈을 통해 정해진 시간마다 거래 데이터 등록, 전일 승인 금액 기록, 거래 내역 통보 기능을 제공하여 거래 데이터 관리 및 가맹점 편의성을 높였습니다.
- 원천사 요청 수신 모듈을 통해 거래 알림 노티 데이터를 PG에서 처리할 수 있도록 구현하여 거래 처리 속도를 높였습니다.
- 원천사 파일 요청 모듈을 통해 파일 다운로드 요청 및 데이터 등록 기능을 구현하여 데이터 처리의 효율성을 높였습니다.
개선사항
- Scheduling 모듈에서 SPRING BATCH를 도입하여 일괄적으로 데이터를 처리하는 방식으로 변경할 수 있을 것입니다.
- 거래 내역 통보 기능에서 최대 재통보 횟수나 재통보 시간 간격 등의 옵션을 설정할 수 있는 기능을 추가하면 더욱 높은 안정성을 제공할 수 있을 것입니다.
- 원천사 요청 수신 모듈에서 원천사에서 보내는 거래 데이터를 빠르게 처리할 수 있도록 병렬 처리 기능을 추가할 수 있을 것입니다.
- 원천사 파일 요청 모듈에서 파일 다운로드 속도를 개선하고, 파일이 매우 큰 경우에 대한 처리 방안을 강구할 필요가 있습니다.