멀티스레드 환경에서 카드 결제, 취소 요청에 대해 분산락을 활용하여 안전하게 처리를 한다.
- springboot3.2, java 17
- jpa
- spring security crypto
- embedded redis, embedded h2
- assertj, rest-assured, junit, mocktio
├── adapter //외부 구성 요소(데이터베이스)와의 통신을 담당
├── common //각 패키지에서 공통적으로 처리되는 기능
├── controller
├── domain
├── service
└── config
curl -X POST http://127.0.0.1:8080/pay \
-H "Content-Type: application/json" \
-d '{
"cardNumber": "1234567812345678",
"expiryDate": "1225",
"cvc": "123",
"installmentMonth": 12,
"paymentAmount": 100000,
"vat": 10000
}'curl -X GET http://127.0.0.1:8080/pay/{id} curl -X DELETE http://127.0.0.1:8080/pay/{id} \
-H "Content-Type: application/json" \
-d '{
"amount": 100000,
"vat": 10000
}'