동시성 문제 해결 - 수강신청하기
2025. 6. 2. 16:58
Spring
수강인원이 있는 강의의 수강신청 기능을 개발하며잔여인원을 알맞게 카운팅 할 필요가 있었다. 이 때, 사용자가 같은 버튼을 여러번 누를 때 같은 주문이 여러 번 발생하거나,A와 B가 동시에 1개 남은 잔여 강의 구매 시-> 재고가 마이너스되는 등의 오류가 발생할 수 있다. 위와같은 문제를 동시성 문제라고 한다. 이런 동시성 문제를 해결하려면, 데이터에 하나의 스레드만 접근이 가능하도록 해야한다.그렇다면 어떻게 데이터에 동시에 하나의 스레드만 접근이 가능하게 할 수 잇을까? 동시성 문제를 해결하는 방법들과, 각각의 장단점에 대해 알아보자. 1. JAVA의 synchronized 자바에서는 Synchronized 키워드를 통해 데이터에 하나의 스레드만 접근이 가능하도록 만들어준다. 작동 ..