์บ์‹ฑ ์ „๋žต ๐Ÿ’ฝ

waterlynยท2023๋…„ 6์›” 18์ผ
1
post-thumbnail

์ €๋ฒˆ์— ๊ณต๋ถ€ํ–ˆ๋˜ ์บ์‹œ ๊ฐœ๋…์— ์ด์–ด ์ด๋ฒˆ์—๋Š” ์บ์‹ฑ ์ „๋žต์—๋Š” ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Ž

๐Ÿ—ƒ๏ธย ์บ์‹ฑ ์ „๋žต

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

๐Ÿ“ย Cache Aside

ํŠน์ง•

  • ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์บ์‹ฑ ์ „๋žต์ด๋‹ค.
  • application๊ณผ db ์˜†์— ๋‘์–ด ํ•„์š”ํ•  ๋•Œ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์—์„œ ๋กœ๋“œํ•˜๋Š” ์ „๋žต
    • ์ƒ๋Œ€์ ์œผ๋กœ ์˜์กด์„ฑ์ด ๋‚ฎ์œผ๋ฉฐ, cache๋Š” ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋œ๋‹ค.
    • ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์บ์‹œ์— ์ ‘๊ทผํ•œ๋‹ค!
  • ์ด ์ „๋žต์˜ ๊ฒฝ์šฐ ์ฝ๊ธฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
    • Memchached์™€ Redis๊ฐ€ ์ด ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•˜๋‹ค.

๋ฐ์ดํ„ฐ ์กฐํšŒ ์ „๋žต

  • ์บ์‹œ๋Š” DB์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๊ณ , application์ด ์ฃผ์ฒด๊ฐ€ ๋œ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์กฐํšŒ์‹œ application์—์„œ cache๋ฅผ ๋จผ์ € ์กฐํšŒํ•œ๋‹ค.
    • cache์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์กฐํšŒํ•˜์—ฌ ์ „๋‹ฌํ•˜๊ณ , ์—†์„ ๊ฒฝ์šฐ application์ด DB์—์„œ ์กฐํšŒํ•˜์—ฌ cache์— ์ ์žฌํ•œ ํ›„, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ

์žฅ์ 

  • ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์บ์‹œ์— ์ ์žฌํ•˜์—ฌ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
    • ์ž์ฃผ ํ˜ธ์ถœ๋˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์บ์‹œ ์‚ฌ์šฉ
  • ์บ์‹œ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ํƒ„๋ ฅ์ ์ด๋‹ค.
    • ์บ์‹œ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜์ง€ ๋ชปํ•ด๋„ DB๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์–ด๋„ application ๊นŒ์ง€ ์˜ค๋ฅ˜๊ฐ€ ์ „ํŒŒ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • DB์™€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ๋‹ค๋ฅด๊ฒŒ ์กด์žฌํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
    • DB์˜ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋ฅผ ๊ทธ๋Œ€๋กœ ์ ์žฌํ•˜์ง€ ์•Š์•„๋„ application์—์„œ ์ถฉ๋ถ„ํžˆ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ํŠน์ • ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ํ˜•์„ฑ๋˜๋Š” ๋ชจ์Šต ๊ทธ๋Œ€๋กœ ์ ์žฌํ•˜์—ฌ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹จ์ 

  • ์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ”๋กœ DB๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์†๋„๊ฐ€ ๋” ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค.
    • DB์—์„œ ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ cache์— ์ ์žฌํ•˜๋Š” ๊ณผ์ •์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ.
  • ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค.
    • ์บ์‹œ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ DB๋ฅผ ์กฐํšŒํ•˜์—ฌ ์บ์‹œ์— ์ ์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
  • ์ˆ˜๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋Š” ํ™˜๊ฒฝ ๊ฐ™์€ ๊ฒฝ์šฐ ํ•ด๋‹น ์ „๋žต์€ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.

๋ฐ˜๋ณต์ ์œผ๋กœ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ์ „๋žต์ผ ๊ฒƒ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ์ง์ ‘์ ์œผ๋กœ DB์— ์ ‘๊ทผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ณผ๋ถ€ํ™”๊ฐ€ ์‰ฝ๊ฒŒ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ „๋žต์ธ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ“ย Read-Through Cache

ํŠน์ง•

  • application, cache, DB๋ฅผ inline์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ์ „๋žต
  • ์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ, DB์—์„œ ๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜์—ฌ ์บ์‹œ์— ์ฑ„์šด ํ›„์— application์— ๋ฐ˜ํ™˜
  • cache-aside ๋ฐฉ์‹๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ lazy loading ํ•œ๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ์—๋งŒ ์กฐํšŒ
  • cache-aside ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅธ ์ ์€ application์ด cache๋งŒ ๋ฐ”๋ผ๋ณธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
    • ์ฆ‰, cache๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”์ธ ์ฃผ์ฒด๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
    • ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ์—ญํ• ๋„ cache๊ฐ€ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • DB์™€ ๋™์ผํ•œ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์ฃผ์ฒด๊ฐ€ cache์ด๊ธฐ ๋•Œ๋ฌธ์—

๋ฐ์ดํ„ฐ ์กฐํšŒ ์ „๋žต

  • application์€ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ cache๋ฅผ ๋จผ์ € ์กฐํšŒํ•œ๋‹ค.
    • ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ์—†๋‹ค๋ฉด cache๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณณ์—์„œ DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ๋‹ค.
    • cache์— ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌํ•œ ํ›„์— application์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

์žฅ์ 

  • cache aside์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฝ๊ธฐ ์ž‘์—…์ด ๋ถ€ํ•˜๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ, ์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‘๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ด๋‹ค.
  • ๋Œ€๋Ÿ‰์˜ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ cache์— ์ ์žฌํ•˜์—ฌ ์ฝ๊ธฐ ๋ถ€ํ•˜๋ฅผ ํ•ธ๋“ค๋งํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ฝ์–ด์˜ค๋Š” ์ฃผ์ฒด๊ฐ€ cache์ด๊ธฐ ๋•Œ๋ฌธ์—

๋‹จ์ 

  • ์ฒ˜์Œ ์š”์ฒญ์€ ๋ฌด์กฐ๊ฑด cache miss๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

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

๐Ÿ“ย Write-Through Cache

ํŠน์ง•

  • Read Through ์™€ ๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ „๋žต์ด๋‹ค.
  • ํ•˜์ง€๋งŒ Read Through์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™์ผํ•˜๊ฒŒ cache๊ฐ€ ์ฃผ์ฒด๊ฐ€ ๋˜๋Š” ์ „๋žต์ด๋‹ค.
    • cache๊ฐ€ ์ฃผ์ฒด๊ฐ€ ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ cache์™€ DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋งˆ๋‹ค cache์— ์ €์žฅํ•˜๊ณ , DB์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

๋ฐ์ดํ„ฐ ์กฐํšŒ ์ „๋žต

  • application์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด cache๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณณ์—์„œ cache์— ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์š”์ฒญํ•œ๋‹ค.
  • cache์— ๋ฐ์ดํ„ฐ ์ ์žฌ ํ›„ DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • ํ•ญ์ƒ ๋ฐ์ดํ„ฐ ์ €์žฅ์€ cache๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์žฅ์ 

  • cache์™€ DB์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ญ์ƒ ๋™๊ธฐํ™” ๋˜์–ด ์žˆ๋‹ค.

๋‹จ์ 

  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์—ฌ๋„ cache์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์žฌ๋˜์–ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ๊ฐ€ ์•„๋‹Œ ์ €์žฅํ•  ๋•Œ cache์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ
  • ์“ฐ๊ธฐ ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•œ๋‹ค.
    • cache์— ์ ์žฌ ํ›„, DB์— ์ ์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ
๐Ÿช Write-Through์™€ Read-Through ์ „๋žต์„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๊ด€์„ฑ์ด ์žˆ๊ฒŒ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ, ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ์—๋„ cache๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ์˜ ๋ชจ๋“  ์ด์ ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์ž‘์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ํšจ๊ณผ์ ์ธ ์ „๋žต์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•„์š”์—†๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์— ์ ์žฌ๋˜์–ด ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ์ „๋žต์ธ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ“ย Write-Around

ํŠน์ง•

  • write ์š”์ฒญ ์‹œ cache๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  DB์— ์ €์žฅํ•˜๋ฉฐ, ์ฝ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ cache์— ์ €์žฅํ•˜๋Š” ์ „๋žต์ด๋‹ค.

๋ฐ์ดํ„ฐ ์กฐํšŒ ์ „๋žต

  • application์—์„œ ๋ฐ์ดํ„ฐ write ์š”์ฒญ ์‹œ DB์— ๋ฐ”๋กœ write ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  • application์—์„œ read ์š”์ฒญ ์‹œ cache๋ฅผ ๋จผ์ € ํ™•์ธ ํ›„ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
  • ์—†์œผ๋ฉด cache๋ฅผ ํ†ตํ•ด DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ , ์ €์žฅํ•œ ํ›„์— ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

์žฅ์ 

  • ์“ฐ๊ธฐ ์ž‘์—…์— cache๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์“ฐ๊ธฐ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๊ธฐ๋กํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด์„œ ์ฝ๊ธฐ ์ž‘์—…์— ๋ถ€ํ•˜๊ฐ€ ์ž˜ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋ฉด ํšจ์œจ์ ์ด๋‹ค.

๋‹จ์ 

  • ๋ฐ์ดํ„ฐ ์กฐํšŒ ์‹œ cache์— ์ €์žฅํ•˜๋Š” ๊ณผ์ •์ด ์žˆ์–ด ์†๋„๊ฐ€ ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ DB์— ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๋„ ์ง€ํ‚ค๋ฉด์„œ ๋ฐ˜๋ณต์ ์ธ ์ ‘๊ทผ์— ๋Œ€ํ•ด ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž‘์„ฑ๋˜๊ณ  ๋ฐ˜๋“œ์‹œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐ ์ ‘๊ทผ ์‹œ์— ์บ์‹œ์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค.

๐Ÿ“ย Write-Back

ํŠน์ง•

  • application์€ cache์—๋งŒ write๋ฅผ ์š”์ฒญํ•œ๋‹ค.
  • ๋ณ„๋„์˜ ์„œ๋น„์Šค(Batch, Scheduler ๋“ฑ)๋ฅผ ํ†ตํ•ด DB์— ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™” ์‹œํ‚จ๋‹ค.

๋ฐ์ดํ„ฐ ์กฐํšŒ ์ „๋žต

  • application์€ write ์š”์ฒญ ์‹œ์— cache์— ์š”์ฒญ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌํ•˜๊ณ  ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•œ๋‹ค.
  • ํŠน์ • ์„œ๋น„์Šค๊ฐ€ ํŠน์ • ์ฃผ๊ธฐ๋กœ cache์— ์ ์žฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ ์žฌํ•œ๋‹ค.

์žฅ์ 

  • ์“ฐ๊ธฐ ์š”์ฒญ์ด ๋งŽ์€ ๊ฒฝ์šฐ cache์— ์ฒ˜๋ฆฌ๋ฅผ ์ ์žฌํ•œ ํ›„, DB์— ์ €์žฅํ•˜๋Š” ์‹์œผ๋กœ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
    • ์“ฐ๊ธฐ ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.

๋‹จ์ 

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•˜๋‹ค๊ฐ€ ์ ์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์‚ฌ์ด์— cache์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ ์œ ์‹ค ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
๐Ÿช ์•„์ฃผ ์งง์€ ์‹œ๊ฐ„์•ˆ์— ๋Œ€๋Ÿ‰์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ Read-Through์™€ Write-Back ์ „๋žต์„ ์ด์šฉํ•˜๋ฉด ํšจ๊ณผ์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์บ์‹œ์— ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์šฉ๋Ÿ‰ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ์— ์ ํ•ฉํ•˜์ง€๋งŒ ์บ์‹œ ์„œ๋ฒ„๋ฅผ ์ค‘๊ฐ„์— ๊ฑฐ์น˜๋Š” ๊ฒƒ์ธ ๋งŒํผ ๋™๊ธฐํ™”๊ฐ€ ์ค‘์š”ํ•œ ์ „๋žต์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์บ์‹œ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ๋‚ ์•„๊ฐ€๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์ „๋žต๋„ ํ•„์š”ํ•˜๋‹ค.

๋Š๋‚€์  ๐Ÿง

์บ์‹œ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ์ตœ๊ทผ์— ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌํ•˜๋Š” ์ •๋„๋กœ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ฝ๊ธฐ, ์“ฐ๊ธฐ ์ค‘ ์–ด๋–ค ๊ฒƒ์— ์บ์‹œ๋ฅผ ์ ์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ณ , ์บ์‹œ์™€ DB ์‚ฌ์ด์—์„œ์˜ ๋™๊ธฐํ™”๋„ ์‹ ๊ฒฝ์จ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค..!

๋ฏธ๋ฆฌ ์กฐ๊ธˆ ๋ง์„ ํ•ด๋ณด์ž๋ฉด ์ž„์‹œ ์ €์žฅ ๊ธฐ๋Šฅ์— ์บ์‹œ๋ฅผ ์ ์šฉํ•ด๋ณผ ์˜ˆ์ •์ธ๋ฐ ์–ด๋–ค ์บ์‹œ ์ „๋žต์„ ๊ฐ€์ ธ๊ฐ€๊ณ , ์–ด๋–ค ์บ์‹œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ž˜ ๊ณ ๋ฏผํ•ด๋ณด๊ณ  ๊ฒฐ์ •ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค!! ๐Ÿ˜ค

์ฐธ๊ณ 

Caching ์ „๋žต
Caching ์ „๋žต ์†Œ๊ฐœ ๋ฐ ์‚ฌ์šฉ ์˜ˆ์ œ

profile
Hello there ๐Ÿ–ค

0๊ฐœ์˜ ๋Œ“๊ธ€