Hibernate는 @Version 없이도 stale detection을 한다 — 좋아요 동시성 디버깅에서 만난 의외의 안전장치들어가며게시글 좋아요 토글(toggleLike) 기능을 보다가 동시성 문제가 있을 것 같아서 재현 테스트를 만들어 봤습니다. 처음 가설은 꽤 단순했어요."check-then-act 패턴이니까 동시 요청이 들어오면 like_count가 음수가 될 거다."그런데 막상 실측해 보니 결과가 예상과 완전히 달랐습니다. 정합성은 멀쩡한데, 10건 중 9건이 500 에러로 실패하고 있었어요. 원인을 따라가다 보니 Hibernate가 @Version 없이도 자동으로 해주는 stale detection 메커니즘을 만나게 됐습니다. 이 글에서는 그 과정을 정리해 보려고 합니다.1. 문제의 코드좋아..