
동시성 문제란? 공유 자원에 둘 이상의 스레드가 접근하여 생기는 경쟁 상황(race condition)을 동시성 문제라고 한다. 둘 이상의 스레드가 공유 데이터에 접근 가능한 상황에서 하나의 스레드가 공유 데이터를 수정 중일 때, 다른 스레드에서 수정 전의 데이터를 조회해 로직을 처리함으로써 데이터의 정합성이 깨지는 문제를 말한다. 자바 스프링 기반의 웹 애플리케이션은 기본적으로 멀티 스레드 환경에서 구동된다. 따라서 공유 자원에 대해 race condition이 발생하지 않도록 별도의 처리가 필요하다. 분산 락이란? 자바는 Synchronized 라는 키워드를 제공해 상호 배제 기능을 제공한다. 하지만 Sychronized는 하나의 프로세스 안에서만 상호 배제를 보장한다. 서버가 1대일 때는 문제가 없..
Computer Science/Database
2023. 2. 16. 01:33