일반적인 주문 시스템에 토스 페이먼츠 결제 연동을 추가한 프로젝트입니다.
결제 진행에 사용되는 도메인은 간단하게 하거나 생략하고, 결제 핵심 로직 및 연동 과정 중 발생할 수 있는 문제점을 파악하고 해결하는 것을 목표로 하였습니다.
-
결제 요청 및 승인 과정 중 데이터 변동 방지를 위해 결제 정보를 검증하여 결제 데이터 정합성 보장 - 토스 페이먼츠를 통한 결제 연동 시스템 구현
-
트랜잭션 내 외부 API 요청 배제 및 범위 최소화를 통한 안정성 및 성능 향상 - 트랜잭션 범위 최소화를 통한 성능 및 안정성 향상
-
동시성 이슈 해결을 위한 비관적 락 적용 및 멀티 스레드 테스트를 통한 검증 수행 - 멀티 스레드 테스트와 @Transactional
-
신뢰성 있는 도메인 로직을 위한 테스트 코드 작성
그 외 N+1 문제 해결 및 Cursor 기반 페이징 적용을 통한 성능 개선 진행
- Java 17
- Spring 6.0.13
- Spring Boot 3.1.5
- MySQL 8.0.33
- API
- POST /api/v1/orders/create - 주문 요청
- POST /api/v1/orders/confirm - 주문 승인
- View
- GET /order - 주문 상세 조회
- GET /order/{id} - 주문 리스트 조회
- POST /order/cancel - 주문 취소