참여하기 api 에서 동시성 문제가 발생할 확률이 적기 때문에 낙관적 락을 적용하여 동시성 문제 해결졸업 전시회 이후 플로깅 활동 참여하기 api의 필요성을 느끼고 참여하기 api 를 구현하기로 했다.
플로깅 활동 구인 게시글에 참여하기 버튼을 누르면 해당 참여인원을 카운트 해줘야 했다.
따라서 Recruitment_board 내부에 참여 카운트 필드를 넣고 회원이 참여요청 시 count ++ 을 하는 로직을 생각하였다.
하지만 이런 경우 동시성 문제가 발생할 것이라 생각하였고 이를 해결하려면 어떻게 할지 찾아보았다.
우선 동시성 이슈가 무엇인지 알아보았다.
여러 쓰레드가 동시에 같은 인스턴스의 필드 값을 변경 하면서 발생하는 문제를 의미.
하나의 자원에 대하여 여러 쓰레드가 조회, 변경, 저장 작업을 하면서 원하는 대로 로직이 수행되지 않고 데이터 정합성이 깨지는 것이다.
아래 그림을 보자
