[๐ŸŽCS] Cache๐Ÿ’ฐ

h-a-n-aยท2023๋…„ 5์›” 31์ผ
1

๐ŸŽCS

๋ชฉ๋ก ๋ณด๊ธฐ
12/15

Cache

cache๋ž€ ํ”„๋ž‘์Šค์–ด๋กœ '์ˆจ๊ธฐ๋‹ค'๋ผ๋Š” ๋œป์„ ๊ฐ€์ง„ ๋‹จ์–ด์ธ cacher์—์„œ ํŒŒ์ƒ๋œ ๋‹จ์–ด๋กœ, ๋ฌผ๊ฑด์„ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅ, ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋งํ•˜๋Š” ๊ธฐ์ˆ ์  cache๋Š” ์ž์ฃผ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋‚˜ ๊ฐ’์˜ ๋ณต์‚ฌ๋ณธ์„ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅ, ๋ณด๊ด€ํ•ด๋†“๋Š” ์ž„์‹œ ์ €์žฅ์†Œ๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋˜๊ฒ ๋‹ค. ์บ์‹œ๋Š” ๋ณดํ†ต ์บ์‹œ์˜ ์ ‘๊ทผ ์‹œ๊ฐ„์— ๋น„ํ•ด ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ(์„œ๋ฒ„์˜ ๊ท ์ผํ•œ API ๋ฐ์ดํ„ฐ) ํ˜น์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ฃผ๋Š” ๊ฒฝ์šฐ (ํŠน์ • ์ด๋ฏธ์ง€๋‚˜ ์ธ๋„ค์ผ ๋“ฑ)์— ์‚ฌ์šฉํ•œ๋‹ค.

์ง€์—ญ์„ฑ

์บ์‹ฑ ์ „๋žต์€ ์›น ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์บ์‹œ๋Š” ๋ฉ”๋ชจ๋ฆฌ(RAM)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์–ด ์ด์šฉ์ž์—๊ฒŒ ๋น ๋ฅด๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ RAM์˜ ์šฉ๋Ÿ‰์€ ์ปค๋ด์•ผ 16~32G ์ •๋„๋ผ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์บ์‹œ์— ์ €์žฅํ•ด๋ฒ„๋ฆฌ๋ฉด ์šฉ๋Ÿ‰ ๋ถ€์กฑ ํ˜„์ƒ์ด ์ผ์–ด๋‚˜ ์‹œ์Šคํ…œ์ด ๋‹ค์šด๋  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ง€์—ญ์„ฑ์„ ๋‚˜๋ˆ„์–ด ๋ถ„๋ฅ˜ํ•œ๋‹ค.

์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ

ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋ฒˆ ์ ‘๊ทผ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋˜ ํ•œ ๋ฒˆ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ฆ‰, ํ•œ ๋ฒˆ ๊ฐ€์ ธ์™”๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋˜ ์“ธ ์ผ์ด ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

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

๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ

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

๋‹ค์‹œ ๋งํ•ด ์•ž์œผ๋กœ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋“ค์ด, ๊ฐ€์ ธ์˜ฌ ๋ธ”๋ก์•ˆ์— ๋ชจ์—ฌ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ์—ฌ์žˆ๋‹ค๋ฉด ํ•œ ๋ฒˆ๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•ด๋„ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ์—ฌ์žˆ์ง€ ์•Š๋‹ค๋ฉด Cache Miss๊ฐ€ ๋‚  ํ™•๋ฅ ์ด ๋†’์•„์ง€๊ณ  ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ๋ฒˆ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜์–ด ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€๊ฒŒ ๋œ๋‹ค.

*cache hit: ์บ์‹œ ์Šคํ† ์–ด(redis)์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ด(๋น ๋ฆ„)
*cache miss: ์บ์‹œ ์Šคํ† ์–ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์–ด์ฉ” ์ˆ˜ ์—†์ด DB์—์„œ ๊ฐ€์ ธ์˜ด(๋Š๋ฆผ)


์œ„์™€ ๊ฐ™์€ ์ €์žฅ๊ณต๊ฐ„ ๊ณ„์ธต๊ตฌ์กฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด, ์บ์‹œ๋Š” ์ €์žฅ ๊ณต๊ฐ„์ด ์ž‘๊ณ  ๋น„์šฉ์ด ๋น„์‹ผ ๋Œ€์‹  ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.(๊ดœํžˆ ์ด๋ฆ„์ด cash๐Ÿ’ฐ์ธ๊ฒŒ ์•„๋‹ˆ๋‹ทใ…‹ใ…‹)


์ฐธ๊ณ ์‚ฌ์ดํŠธ
[Server] Cache(์บ์‹œ)๋ž€?
์บ์‹œ/ ์›น ์บ์‹œ(Cache)๋ž€? (๊ฐœ๋…/ ์‚ฌ์šฉ ์ด์œ / ์žฅ์ / ๋™์ž‘ ์›๋ฆฌ)
์›น ๋ธŒ๋ผ์šฐ์ €์˜ Cache ์ „๋žต & ํ—ค๋” ๋‹ค๋ฃจ๊ธฐ

profile
ํ•˜๋ฃจํ•˜๋ฃจ๊ฐ€ ์—ฐ์Šต์ด๋‹ˆ ๋‚ด์ผ์€ ๋” ๊ฐ•ํ•ด์งˆ ๊ฒ๋‹ˆ๋‹ค

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