๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋™์‹œ์„ฑ ๋ฌธ์ œ1

[Spring] JPA ๋น„๊ด€์  ๋ฝ ์ ์šฉ์œผ๋กœ ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ ๐Ÿค” ๋ฌธ์ œ ์ƒํ™ฉ ์ง„ํ–‰์ค‘์ธ ๋ธ”๋ผ์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์กฐํšŒ ํšŸ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ๊ฝƒ A, B, C ๊ฐ€ ์กฐํšŒ๋˜๋ฉด A, B, C ์˜ ์กฐํšŒ ํšŸ์ˆ˜๋ฅผ ๊ฐ๊ฐ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ์•ผ ํ–ˆ๋Š”๋ฐ, ๋งŒ์•ฝ A ์˜ ํ˜„์žฌ ์กฐํšŒ ํšŸ์ˆ˜๊ฐ€ 1์ผ ๋•Œ, ๋™์‹œ์— 3๋ฒˆ ์กฐํšŒ๋œ๋‹ค๋ฉด ๊ฒฐ๊ณผ๋Š” 4ํšŒ๊ฐ€ ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ, 2ํšŒ๊ฐ€ ๋˜๋Š” ์ƒํ™ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์›ํ•˜๋Š” ๋ฐฉ์‹๋Œ€๋กœ ๋™์ž‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋น„๊ด€์  ๋ฝ์„ ์ ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘ป JPA ๋™์‹œ์„ฑ ์ œ์–ด ๋ฐฉ์‹ JPA ๋Š” ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋™์‹œ์„ฑ ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์—๋Š” ๋‚™๊ด€์  ๋ฝ๊ณผ ๋น„๊ด€์  ๋ฝ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. โ›“๏ธ ๋‚™๊ด€์  ๋ฝ (Optimistic Lock) ๋‚™๊ด€์  ๋ฝ์€ DB ๊ฐ€ .. 2023. 6. 15.