현재 결제 로직은 결제 정보가 들어올때 신청 인원과 강의 스케쥴의 정원 및 현재 인원을 조회하여 비교하고 해당 스케쥴의 현재인원을 증가시킨다.
만약 결제 요청이 동시에 발생하거나 서버가 요청을 처리하는데 시간이 오래 걸리는 경우 증가시키기 전 인원을 비교하여 처리하기 때문에 데이터 정합성에 문제가 생길 수 있다.
공유하는 자원에서 안정적인 접근과 제어를 위해 코드또는 DB단에서 한번에 하나의 요청만을 처리할 수 있도록 제한하는 락(Lock)이 필요하다.
동시성 테스트 환경 세팅
우선 동시성 테스트를 위해 JMeter를 사용하여 테스트환경을 세팅해줄 것이다.
유저 추가
사용자의 역할을 하는 쓰레드를 추가해준다.
HTTP 추가
쓰레드에서 요청을 보내기 위해 표본 추출기에서 HTTP 요청을 추가해준다.