동시성을 해결하기 위한 방법
·
Server/Java
온보딩 과제를 진행하던 도중, 동시성에 관한 문제를 직면하고 싶었다. auto increase를 사용하여 추가하는 no와 달리, 마지막 순서를 찾아 해당 순서에서 +1을 진행하는 로직에서는 동시성 문제가 발생하지 않을까?라는 생각에 도달했고, 스레드를 만들어 테스트를 한 결과. Pk였던 no는 1, 2, 3, ... 순서에 맞춰 생성되고 있었지만, orderId는 1, 1, 1, 2, 2, 2, 2, 2,... 순서가 겹쳐지기 시작했다. 접근 목록 트랜잭션 격리 수준 격상 MySQL 락 사용 Synchronized 사용 Redis Lettuce Lock 사용 Redis Redisson Lock 사용 트랜잭션 격리 수준 격상 트랜잭션의 격리 수준을 최상으로 올렸다. SERIALIZABLE을 사용하여 테스트..