Skip to Content
프로젝트원큐오더설계결제 흐름 설계

결제 흐름 설계

원큐오더 프로젝트의 핵심인 결제 시스템의 전체 흐름을 설계한 문서입니다.

시스템 구성 요소

1. 원큐오더 메인 서버

주문 관리, 메뉴 관리, 가맹점 관리 등 서비스의 핵심 비즈니스 로직을 담당합니다. Spring WebSocket을 활용하여 주방과 홀 화면에 실시간으로 주문 정보를 전달합니다.

2. PG 서버 (Payment Gateway)

PG 서버는 결제의 시작점으로, 가맹점과 카드사를 연결하는 핵심 역할을 담당합니다. Spring Boot로 구현되었으며, 결제 요청 검증, 트랜잭션 관리, 결제 승인 프로세스를 처리합니다.

3. 앱카드 서버 및 클라이언트

Flutter로 개발된 네이티브 앱과 Spring Boot 서버로 구성되어 있습니다. 사용자가 결제하기 버튼을 누르면 앱카드 클라이언트로 이동하여 생체 인증, PIN 번호 입력 등의 본인 확인 절차를 수행합니다. 결제 인증이 완료되면 FCM을 통해 푸시 알림을 발송합니다.

4. 카드사 서버

실제 카드사의 역할을 모방한 서버로, 카드 유효성 검증, 한도 확인, 승인 처리를 담당합니다. 여신금융협회에서 정한 카드사 수수료율을 적용하여 실제와 동일한 수수료 체계를 구현했습니다. Spring Batch를 활용하여 일일 정산 파일을 생성하고 SFTP로 계정계 서버에 전송합니다.

5. 계정계 서버

C언어로 구현된 HTTP 서버로, 실제 은행의 코어 뱅킹 시스템을 모방했습니다. Java의 JIT 컴파일과 달리 AOT(Ahead-Of-Time) 컴파일 방식을 사용하여 컴파일 타임에 예측 가능한 에러를 확인할 수 있어, 돈과 관련된 중요한 입출금 기능의 안정성을 높였습니다.

결제 흐름 시퀀스 다이어그램

Last updated on