문제 상황
Race Condition이 발생할 수 있음.고려 사항
프로세스에서 한 데이터를 쓰레드가 사용하면 다른 쓰레드가 사용하지 못하도록 막는 방식
서버가 여러 개 떠있을 때는(프로세스가 여러개) 프로세스 lock은 전혀 의미가 없게 된다.
현재 진행하는 프로젝트는 기본적으로 대용량 트래픽을 고려하고 설계하는 프로젝트. 이런 프로젝트의 아키텍처에서는 상황에 따라 서버를 증설하는 scale-out 방식을 고려한 설계가 필수적이라고 생각. 따라서 프로세스 Lock을 통해서는 동시성 문제를 해결할 수 없다고 판단.
한 트랜재셕인 데이터베이스의 특정 데이터에서 작업을 하고 있다면 다른 트랜잭션이 접근하지 못하도록 막는 방식
DB lock을 사용한다면 동시성 문제를 해결하기 위해 수량이 남았는지 읽고 쓰는 작업까지 모두 lock을 걸어줘야 함1. 빠른 응답