재고 관리 문제 해결(동시성 및 DB 동기화 전략에 대해)
·
Back-End
쇼핑몰, 이커머스 서비스 등에서 상품에 대한 재고 관리는 아주 중요한 기능이다. 또한, 이 기능은 백엔드 개발자로써 동시성 문제와 성능 개선 등에 대해서 많이 다뤄볼 수 있는 적합한 주제라고도 생각할 수 있다. 프로젝트를 진행하며, 단순히 DB에서 재고 개수를 차감시키던 기능이 어떤 문제들을 가져올 수 있었으며, 이를 해결하기 위해 어떤 방법들을 적용했는지를 작성해보려 한다.동시성 문제(Lost update)먼저 코드를 보자@Transactionalpublic void deductUnsafe(UUID productId, int quantity) { // 재고 조회 Inventory inventory = inventoryJpaRepository.findByProductId(productId) ..