Skip to content

재고 처리 시 동시성 문제를 해결하는 미니 프로젝트

Notifications You must be signed in to change notification settings

footdev/stock-concurrency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stock-concurrency

개요

재고 처리 시 동시성 문제를 해결하는 미니 프로젝트

문제 인식

팀 프로젝트 진행 도중 경매 시스템, 인기글의 경우 많은 조회수 update 등 동시성 문제가 발생한다는 부분을 알게되었다.
소규모 프로젝트 수준에서는 문제가 되지 않을 수 있지만 엔터프라이즈 레벨의 어플리케이션의 비즈니스 로직을 처리하는 업무를 맡았을 때 이러한 동시성 문제에 대한 정합성이 중요할 수 있을 것 이라고 생각했다.

이러한 문제를 어떻게 개선하고 해결해가는지 알아보고자 했다.

JPA는 DB가 제공하는 락 이전에 어플리케이션 레벨에서 동시성을 제어하기 하고 데이터 일관성을 지키기 위해서 자체적으로 낙관적 락, 비관적 락을 통해 격리 수준을 READ COMMITTED 정도로 유지하게끔 도와준다.

이러한 동시성 제어를 구현해보고 테스트를 통해 실제로 데이터 일관성이 지켜지는지 테스트 하고자 한다.

목표

  • 비즈니스 로직 중 Race Condition이 발생하는 상황에서 해결 방법을 찾아보고 구현한다.
  • 여러 방법을 시도해보고 어떤 트레이드 오프가 있는지 확인한다.
  • JPA가 제공하는 어플리케이션 레벨의 Lock과 Redis를 사용한 분산 환경에 적합한 Lock을 학습하고 검증한다.

About

재고 처리 시 동시성 문제를 해결하는 미니 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages