๐Ÿ—ƒ๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

Lock ์ด ์ •๋ฆฌ2 - ๋‚™๊ด€์  ๋ฝ, ๋น„๊ด€์  ๋ฝ, ๋ฐ๋“œ๋ฝ, ๋ถ„์‚ฐ๋ฝ

mallin 2025. 2. 28. 19:15

์ €๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฝ ๊ฐœ๋… & DB ๋‚ด๋ถ€ ๋ฝ ๊ตฌ์กฐ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š” 

 

์ด๋ฒˆ์—๋Š” ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฝ๋“ค์ธ ๋‚™๊ด€์  ๋ฝ, ๋น„๊ด€์  ๋ฝ, ๋ถ„์‚ฐ๋ฝ, ๋ฐ๋“œ๋ฝ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค !

 

1-1. ๋‚™๊ด€์  ๋ฝ

๋‚™๊ด€์  ๋ฝ์€ ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋‚™๊ด€์ ์œผ๋กœ ๊ฐ€์ •ํ•˜๋Š” ๋ฝ ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค.

  • DB ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฝ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์—์„œ ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค
  • ํŠธ๋žœ์žญ์…˜์„ ์ปค๋ฐ‹ํ•˜๋Š” ์‹œ์ ์— ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋ฏ€๋กœ, ์ตœ์ข… ์—…๋ฐ์ดํŠธ ๊ณผ์ •์—์„œ๋งŒ ๋ฝ์„ ์ ์œ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค
  • ์ด๋ฅผ ํ†ตํ•ด ๋ฝ ์ ์œ  ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ๋™์‹œ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์„ค๋ช…์„ ํ†ตํ•ด์„œ๋Š” ๋ฐ”๋กœ ์ดํ•ด๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค 

 

์„ ์ฐฉ์ˆœ์œผ๋กœ ํ‹ฐ์ผ“์„ ์˜ˆ๋งคํ•˜๋ ค๋Š” ์ƒํ™ฉ์—์„œ ๋‘ ์‚ฌ๋žŒ (A, B) ๊ฐ€ ๊ฑฐ์˜ ๋™์‹œ์— ์˜ˆ๋งค ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์Šต๋‹ˆ๋‹ค !

์˜ˆ๋งค ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €๊ธฐ๋•Œ๋ฌธ์— A ์™€ B ๊ฐ์ž ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค !

๊ทธ๋ฆฌ๊ณ  A 10 ์—ด์— ๋Œ€ํ•ด์„œ ROW ์ •๋ณด์™€ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

์•„์ง๊นŒ์ง„ ์˜ˆ๋งคํ•œ ์‚ฌ๋žŒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— A10 ์˜ ์ƒํƒœ๋Š” ์˜ˆ์•ฝ ๊ฐ€๋Šฅ, version ์€ 1 ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค

A ๊ฐ€ B ๋ณด๋‹ค ์‚ด์ง ๋” ๋จผ์ € ํด๋ฆญํ•ด์„œ ๋ชจ๋“  ๊ณผ์ •์„ ์™„๋ฃŒ ํ›„ 

A 10 ์—ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์˜ˆ์•ฝ ์™„๋ฃŒ ๊ทธ๋ฆฌ๊ณ  version ๋„ 2๋กœ ์—…๋ฐ์ดํŠธ ํ–ˆ๋„ค์š” !

๊ทธ๋ฆฌ๊ณ  ํ•œ๋ฐœ ๋Šฆ์€ B ๋Š” ์ปค๋ฐ‹ ์‹œ์ ์— ํ•ด๋‹น ์ขŒ์„์— ๋Œ€ํ•œ ROW ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด์„œ version ์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค

์–ด๋ž ? ๊ทผ๋ฐ ์ฒ˜์Œ ํ™•์ธํ•œ version ์ธ 1 ๊ณผ ๋‹ค๋ฅธ 2 ๋ผ๊ณ  DB ๊ฐ€ ์•Œ๋ ค์ฃผ๋„ค์š” !

๊ทธ๋Ÿฌ๋ฉด B ๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค !

์ด๋ฅผ ํ†ตํ•ด์„œ A 10 ์—ด์— ๋Œ€ํ•ด์„œ ์ •ํ•ฉ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ๋„ค์š” !

 

1-2. JPA ์—์„œ ๋‚™๊ด€์  ๋ฝ ์‚ฌ์šฉํ•˜๊ธฐ 

JPA ์—์„œ๋Š” @Version ์„ ์‚ฌ์šฉํ•ด์„œ ๋‚™๊ด€์  ๋ฝ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๋‚™๊ด€์  ๋ฝ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ObjectOptimisticLockingFailureException ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,

ํ•ด๋‹น ์—๋Ÿฌ๋ฅผ catch ํ•ด์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ›„์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค !


2-2. ๋น„๊ด€์  ๋ฝ

๋น„๊ด€์  ๋ฝ์€ ๋‚™๊ด€์  ๋ฝ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๋น„๊ด€์ ์œผ๋กœ ๊ฐ€์ •ํ•˜๋Š” ๋ฝ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค

 

  • ๋น„๊ด€์  ๋ฝ์€ DB๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฝ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ž ๊ธˆ(S-Lock, X-Lock) ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋˜๋ฉด S-Lock ๋˜๋Š” X-Lock์„ ์„ค์ •ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์ฆ‰์‹œ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋™์‹œ์„ฑ ๋ฌธ์ œ)
  • ๋ฐ์ดํ„ฐ ์ˆ˜์ • ์‹œ, ํŠธ๋žœ์žญ์…˜ ์ถฉ๋Œ์„ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์‰ฝ๊ฒŒ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ต์ฐฉ ์ƒํƒœ(Deadlock) ๋ฌธ์ œ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋‘ ํŠธ๋žœ์žญ์…˜์ด ์„œ๋กœ ๋‹ค๋ฅธ ์ž์›์„ ์ž ๊ทธ๊ณ  ๋Œ€๊ธฐ ์ƒํƒœ์— ๋น ์ง€๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

 

๋น„๊ด€์  ๋ฝ๋„ ๋‚™๊ด€์  ๋ฝ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ ์ฐฉ์ˆœ์œผ๋กœ ํ‹ฐ์ผ“์„ ์˜ˆ๋งคํ•˜๋ ค๋Š” ์ƒํ™ฉ์—์„œ ๋‘ ์‚ฌ๋žŒ(A, B) ์„ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค !

 

A ์™€ B ๊ฐ€ ๋˜ A 10 ์—ด์„ ์˜ˆ์•ฝํ•˜๋ ค๊ณ  ๋™์‹œ์— ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์Šต๋‹ˆ๋‹ค 

A ๊ฐ€ ์‚ด์ง ๋” ๋จผ์ € ํด๋ฆญํ•ด์„œ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ํ•ด๋‹น row ์— ๋Œ€ํ•ด X-LOCK ์„ ๊ฑธ์–ด์ค๋‹ˆ๋‹ค

ํ•œ๋ฐœ ๋Šฆ์€ B ๊ฐ€ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•  ๋•Œ ํ•ด๋‹น row ์— ๋Œ€ํ•ด์„œ X-LOCK ์„ ๊ฑธ๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€๋งŒ, ์ด๋ฏธ ๋ฝ์ด ๊ฑธ๋ ค์žˆ์Šต๋‹ˆ๋‹ค !

B ๋Š” ์ด๋ฏธ ์ž ๊ฒจ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค

A ๊ฐ€ ์˜ˆ์•ฝ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ , A 10 ์— ๋Œ€ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์•ฝ ์™„๋ฃŒ๋กœ ์—…๋ฐ์ดํŠธํ•จ๊ณผ ๋™์‹œ์— ๋ฝ์„ ํ•ด์ œ์‹œ์ผœ์ค๋‹ˆ๋‹ค

๊ธฐ๋‹ค๋ฆฌ๋˜ B ๊ฐ€ ๋ฝ์„ ํš๋“ํ•˜์ง€๋งŒ ,,,,, ์ด๋ฏธ ๋ฐ์ดํ„ฐ๋Š” ์˜ˆ์•ฝ ์™„๋ฃŒ๋กœ ๋ณ€๊ฒฝ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์•ฝ์— ์‹คํŒจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค


3-1. ๊ต์ฐฉ ์ƒํƒœ (Deadlock)

์œ„์—์„œ ์ž ๊น ์–˜๊ธฐํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋น„๊ด€์  ๋ฝ์€ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์‰ฝ๊ฒŒ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ต์ฐฉ์ƒํƒœ ๋ฌธ์ œ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

๊ทธ๋ ‡๋‹ค๋ฉด ๊ต์ฐฉ์ƒํƒœ๋ž€ ๋ฌด์—‡์ผ๊นŒ์š” ? 

 

๊ต์ฐฉ์ƒํƒœ๋ž€ ๋‘ ํŠธ๋žœ์žญ์…˜์ด ์˜์›ํžˆ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋˜์–ด ์ฒ˜๋ฆฌ๊ฐ€ ์ง„ํ–‰๋˜์ง€ ์•Š๋Š” ์ƒํƒœ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค 

์˜์›ํžˆ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฑด ๋‘ ํŠธ๋žœ์žญ์…˜์ด ์„œ๋กœ ๋‹ค๋ฅธ ์ž์›์— ๋Œ€ํ•ด ๋ฝ์„ ๊ฑธ๊ณ , ๊ฐ ํŠธ๋žœ์žญ์…˜์ด ์ƒ๋Œ€๋ฐฉ์ด ๊ฑธ๊ณ  ์žˆ๋Š” ๋ฝ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ์š” !

 

๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒ๋˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค

ํŠธ๋žœ์žญ์…˜ A๊ฐ€ Resource1 ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  X-Lock์„ ๊ฑธ๊ณ , ๊ทธ ํ›„ Resource2 ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ B๋Š” Resource2 ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  X-Lock์„ ๊ฑธ๊ณ , ๊ทธ ํ›„ Resource1 ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ A ๊ฐ€ Resource1 ์— ๋Œ€ํ•ด์„œ ๋ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ Resource 2 ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค

ํ•˜์ง€๋งŒ, Resource 2 ๋Š” ํŠธ๋žœ์žญ์…˜ B ๊ฐ€ ๋ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์œผ๋กœ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŠธ๋žœ์žญ์…˜ B ๊ฐ€ Resource2 ์— ๋Œ€ํ•ด์„œ ๋ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ Resource 1 ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค

ํ•˜์ง€๋งŒ, Resource 1 ๋Š” ํŠธ๋žœ์žญ์…˜ A ๊ฐ€ ๋ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์œผ๋กœ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค

 

๊ทธ๋Ÿฌ๋ฉด ํŠธ๋žœ์žญ์…˜ A ์™€ ํŠธ๋žœ์žญ์…˜ B ๋Š” Resource 1๊ณผ Resource 2์— ๋Œ€ํ•ด์„œ ๋ˆ„๊ตฌ๋„ ์“ธ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๊ธฐ ๋•Œ๋ฌธ์— 

๊ต์ฐฉ์ƒํƒœ (Deadlock) ์— ์ง๋ฉดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค !!!!!!!!

 

3-2. ๊ต์ฐฉ ์ƒํƒœ ๋ฐœ์ƒ์˜ ๋„ค ๊ฐ€์ง€ ์กฐ๊ฑด

๋ฐ๋“œ๋ฝ์€ ๋‹ค์Œ ๋„ค ๊ฐ€์ง€ ์กฐ๊ฑด์ด ๋™์‹œ์— ์„ฑ๋ฆฝํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋„ค ๊ฐ€์ง€ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋ฉด, ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์ž์›์— ๋Œ€ํ•œ ๋ฌดํ•œ ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ์ด ๋ฉˆ์ถ”๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ๋“œ๋ฝ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ๊ฑด ์„ค๋ช… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
์ƒํ˜ธ ๋ฐฐ์ œ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๊ฑฐ๋‚˜, ์ž์›์˜ ๋ณต์ œ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
์ ์œ  ๋Œ€๊ธฐ ์ž์›์„ ํ•œ ๊ฐœ ์ด์ƒ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ž์›์„ ํ• ๋‹นํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•„์š”ํ•œ ์ž์›์„ ํ•œ ๋ฒˆ์— ์š”์ฒญํ•˜๊ณ , ๊ธฐ๋‹ค๋ฆผ ์—†์ด ๋ชจ๋“  ์ž์›์„ ํ™•๋ณดํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
๋น„์„ ์  ํ•œ ๋ฒˆ ํ• ๋‹น๋œ ์ž์›์„ ๊ฐ•์ œ๋กœ ๋นผ์•—์„ ์ˆ˜ ์—†๋‹ค. ์ž์›์„ ์š”์ฒญํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ์ž์›์„ ์š”๊ตฌํ•  ๋•Œ, ์ด๋ฏธ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž์›์„ ๋ฐ˜๋‚ฉํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž์›์€ ์žฌํ• ๋‹น๋˜์–ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์ˆœํ™˜ ๋Œ€๊ธฐ ๋Œ€๊ธฐ ํ”„๋กœ์„ธ์Šค์˜ ์ง‘ํ•ฉ์ด ์ˆœํ™˜ ํ˜•ํƒœ๋กœ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค. ์ž์›์— ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•˜๊ณ , ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์š”์ฒญํ•  ๋•Œ ๋ฒˆํ˜ธ ์ˆœ์„œ๋Œ€๋กœ ์š”์ฒญํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ ์ˆœํ™˜ ๋Œ€๊ธฐ๋ฅผ ์˜ˆ๋ฐฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ˆœํ™˜ ํ˜•ํƒœ๋กœ ์ž์›์„ ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


4-1. ๋ถ„์‚ฐ๋ฝ 

์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€์ผ ๋•Œ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋™๊ธฐํ™”๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ, ์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ๋™์‹œ์— ๋™์ผํ•œ ์ž์›์„ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ถ„์‚ฐ ๋ฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๋ถ„์‚ฐ๋ฝ์€ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋“ค๊ฐ„ ๋™๊ธฐํ™”๋œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๊ณตํ†ต๋œ ๋ฝ์„ ์ ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณตํ†ต๋œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ถ„์‚ฐ๋ฝ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. Redis ๋‚˜ MySQL ์„ ์‚ฌ์šฉํ•ด์„œ ๋ถ„์‚ฐ๋ฝ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค !

 

์˜ˆ๋ฅผ ๋“ค์–ด Redis ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ถ„์‚ฐ๋ฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •์„ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 

 

์„œ๋ฒ„ A๊ฐ€ ์ž์›์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•  ๋•Œ, Redis์— ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ ๋ฝ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

Redis๋Š” ์ž์›์— ๋ฝ์ด ๊ฑธ๋ ค ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋ฝ์ด ์—†๋‹ค๋ฉด ํ•ด๋‹น ์ž์›์— ๋ฝ์„ ๊ฑธ์–ด ์„œ๋ฒ„ A์—๊ฒŒ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ A๊ฐ€ ์ž์› ์‚ฌ์šฉ์„ ๋งˆ์นœ ํ›„, Redis์— ๋ฝ์„ ํ•ด์ œํ•˜์—ฌ ๋‹ค๋ฅธ ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฝ ๊ฐœ๋… & DB ๋‚ด๋ถ€ ๋ฝ ๊ตฌ์กฐ

๊ธฐ๋ณธ์ ์ธ ๋ฝ ๊ฐœ๋… & DB ๋‚ด๋ถ€ ๋ฝ ๊ตฌ์กฐ