트러블슈팅

트러블슈팅

[Spring] 재고처리 동시성 이슈 해결하기 (1/2)

이커머스 프로젝트를 진행했는데 트러블슈팅 내역을 정리해보려고 한다. 먼저 상품의 재고처리에 대한 동시성 이슈이다. 현재 상품 주문과 주문취소 시 상품의 재고변경로직이 동작하는데 여기서 동시성 이슈가 발생한다. 1. ❓동시성 이슈란❓ 여러 스레드가 동시에 같은 인스턴스의 필드 값을 변경하면서 발생하는 문제 여러 스레드가 하나의 자원을 공유하고 있기 때문에 같은 자원을 두고 경쟁상태(Race Condition)가 됨 2. 코드와 테스트 코드는 간단히 아래와 같이 구성되어 있다. // Product.java @Entity public class Product extends BaseEntity { // ... 기타 필드 @Column(nullable = false) private Long stock; priva..

jny0
'트러블슈팅' 태그의 글 목록