토이프로젝트 - Redis를 이용한 분산 락(Distributed Lock)
·
backend
Database Lock은 Lock 획득을 위해 대기하는 connection을 증가시켜서 부하를 준다.​Java의 synchronized나 ReentrantLock을 사용하여 애플리케이션 수준에서의 동시성 제어도 가능하겠지만, 우리는 트랜잭션 관리나 분산 락 구현을 통해 해결할 것이다.​​데이터베이스의 Lock 전략1. 낙관적 잠금 : 충돌이 감지되면 그때 처리하자!JPA의 @Version 어노테이션을 사용하여 엔티티의 버전을 관리하고, 업데이트 시 버전을 체크하여 충돌을 방지할 수 있다충돌 안나면 처리 성능이 좋지만, 충돌이 빈번한 경우 오히려 비용이 크다.다른 트랜잭션의 접근을 제어하지 않기에 동시성이 높지만 충돌을 방지하지 못한다.충돌시 롤백 처리를 구현해야한다Table의 @Version 이나 Ti..