Computer Science/Network
동시성 이슈
시나민
2023. 3. 2. 10:49
동시성 이슈 (Concurrency Issue)
어떤 두 사건이 같은 시간에 일어나는 것을 이르는 말
쉽게 예를 들면 재고가 1개인 상품에 A,B 2명의 유저가 동시에 구매 요청을 누르는 상황을 생각해보자
상품이 어떠한 사용자에게 배송이 될지 예측할 수 없다.
이러한 상황을 경쟁 조건 (race condition)이라고 한다.
프로그램이 개발자의 제어를 떠나 데이터를 조작할 때 타이밍 또는 접근 순서에 따라 결과값을 예상할 수 없는 경우를 뜻한다.
또 다른 상황을 생각했을 때 각각의 요청들이 서로 리소스 해제를 기다리고 있어 둘 중 어느 요청도 진행할 수 없는 상황이 발생할 수도 있다.
이러한 상황을 교착 상태(dead lock)라고 한다.
동시성 이슈가 문제가 되는 이유
- 예상값과 결과값이 다를 수 있지만, 코드 상 오류가 발생하지 않는다.
- Local 환경에서 개발할 때, 문제를 파악할 수 없다.
- 비정형적으로 발생한다.