기본적으로 클라이언트 따닥 이슈, 성능적으로 영향을 끼치지 않을 것 같은 부분은 레디스 분산락 사용 (redisson)
"맹목적으로 도구에 의존하기보다는 존재하는 동시성 문제의 종류를 잘 이해하고 방지하는 방법을 배울 필요가 있다. 그러면 사용 가능한 도구를 써서 신뢰성 있고 올바르게 동작하는 애플리케이션을 만들 수 있다." 라는 구절에 완전 공감.
평소에는 느낌으로 아, 여기 동시성 문제 생길 것 같은데 또는 느낌적으로 race condition 이 발생할 수 있을 것 같은 부분에는 read-modify-write 을 최대한 지양하려고 하고.. 여기에 Compare-and-set 이라고 표현하는 where 조건에 old content 를 넣어 멱등성을 보장하는 형태로 사용했는데 항상 구체적으로 어떤 문제를 예방할 수 있는지 정확히 그려지지는 않았음.
이 챕터를 여러 번 읽어서 좀 체득하고 위에 책에 기술되어 있는 것 처럼 동시성 문제를 머릿 속에 체계적으로 정리하고, 실제 비지니스 요구사항에 대한 구현을 마주쳤을 때 adaptable 하게 동시성을 제어하는 것이 중요하다고 생각 (적용 또는 응용?)
끄적끄적