JPA 썸네일형 리스트형 동시성 이슈를 방지하는 DB 락(with @Lock) 오늘은 입사 2개월 차에 일어났던 동시성 이슈에 대해서 글을 써보려고 합니다. 동시성 이슈란 소프트웨어 개발과 실행 과정에서 여러 스레드, 프로세스 또는 작업이 동시에 실행될 때 발생하는 문제들을 가리키는 용어입니다. 이번에 회사에서 서비스하고 있는 앱에서 새로 쿠폰 뽑기 이벤트를 개발하던 중에 일어났던 일이었습니다. 회원이 이벤트 페이지에 접근하여 쿠폰 뽑기 버튼을 눌렀을 때 계정당 1회만 미리 DB에 저장된 쿠폰 번호를 발급해 주는 기능을 개발하였는데 새로 개발한 쿠폰 뽑기 기능을 QA 테스트하는 도중 비정상적인 결과가 나왔습니다. 하나의 계정으로 두 개의 디바이스에서 로그인하고 두 디바이스 모두 이벤트 페이지에 접근한 다음 동시에 쿠폰 뽑기 버튼을 클릭하여 쿠폰을 발급받는 테스트였는데 저희가 기대했.. 더보기 이전 1 다음