Skip to content

[feature] 상태 기반 결제 승인 구조 개선 및 낙관적 락 적용으로 정합성 보장 - #22

Open
Answl wants to merge 6 commits into
mainfrom
opt_ej
Open

Answl wants to merge 6 commits into
mainfrom
opt_ej

Conversation

@Answl

@Answl Answl commented Mar 2, 2026

Copy link
Copy Markdown
Member

🙋🏻 𝗪hat

1️⃣ 낙관적 락 적용
Payment 엔티티에 @Version 필드 추가
동시 승인 요청 시 version 충돌을 통해 1건만 승인 확정

2️⃣ 금액 검증 로직 추가
카카오 승인 응답 금액과 DB 저장 금액 비교
불일치 시 FAIL 처리 및 예외 발생

3️⃣ 상태 기반 설계 강화
READY 상태에서만 APPROVED 가능하도록 제어
이미 처리된 상태(APPROVED/FAIL) 재요청 시 예외 처리

4️⃣ 동시성 통합 테스트 추가
멀티 스레드 환경에서 승인 요청 동시 실행
최종 상태가 APPROVED 1건만 유지되는지 검증

📎 𝗪𝗼𝗿𝗸 𝗗𝗲𝘀𝗰𝗿𝗶𝗽𝘁𝗶𝗼𝗻

  • 결제 승인 로직을 상태 전이 기반 구조로 리팩토링
  • @Version 필드 추가하여 낙관적 락 적용
  • 승인 시 카카오 응답 금액과 DB 저장 금액 비교 로직 추가
  • 동시 승인 요청 환경 검증을 위한 멀티 스레드 통합 테스트 추가
  • READY 상태 중복 요청 시 멱등 처리 로직 보완

💬 Test

단위 테스트: 금액 불일치 / 중복 승인 요청 예외 검증
통합 테스트: 멀티 스레드 기반 동시 승인 요청 시 낙관적 락 충돌 검증
외부 API 호출은 @MockBean RestTemplate으로 Mock 처리

@Answl

Answl commented Mar 2, 2026

Copy link
Copy Markdown
Member Author

/gemini review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant