Cache Memory

CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ์†๋„๋Š” CPU ์—ฐ์‚ฐ ์†๋„๋ณด๋‹ค ์••๋„์ ์œผ๋กœ ๋А๋ฆฌ๋‹ค.

  • CPU์™€ ๋น ๋ฅธ ์žฅ์น˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๋น ๋ฅด๊ณ , ๋ฉ€๋ฆฌ ์žˆ๋Š”๊ฒƒ์€ ๋А๋ฆฌ๋‹ค.

  • ์†๋„๊ฐ€ ๋น ๋ฅธ ์ €์žฅ ์žฅ์น˜๋Š” ์šฉ๋Ÿ‰์ด ์ž‘๊ณ  ๋น„์‹ธ๋‹ค. ์†๋„๊ฐ€ ๋А๋ฆฐ๊ฒƒ์€ ๊ทธ์— ๋ฐ˜๋น„๋ก€ํ•œ๋‹ค.

์บ์‹œ๊ฐ€ ์“ฐ์ด๋Š” ์˜ˆ

  • JPA์˜ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋„ ์บ์‹œ์˜ ์ผ๋ถ€

  • CDN (Content Delivery Network)

    • ํ•ด์™ธ์—์„œ ์ธ๊ธฐ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต์‹ ์‚ฌ์— ์ง์ ‘ ๋•Œ๋ ค๋„ฃ์–ด์คŒ. (์œ ํŠœ๋ธŒ ๊ธฐ์ค€)

  • ์›น ์บ์‹œ

    • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด HDD๋ณด๋‹ค ๋А๋ฆด๋•Œ๊ฐ€ ์žˆ๋‹ค.

    • ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ : HTML, CSS, js ์ด๋ฏธ์ง€ ๋“ฑ์„ ํ•˜๋“œ๋””์Šคํฌ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹ฑํ•ด๋†“๊ณ  ๋‹ค์Œ ์ ‘์†์‹œ ์žฌํ™œ์šฉ

    • ์‘๋‹ต ์บ์‹œ : ์›น ์„œ๋ฒ„์—์„œ๋Š” ์ƒ๋‹น์ˆ˜๊ฐ€ ๋™์  ์›น ํŽ˜์ด์ง€๋ฅผ ์ฒ˜๋ฆฌํ• ์ง€๋ผ๋„ ๋‚ด์šฉ์ด ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•œ HTML์„ ์บ์‹ฑํ•ด์„œ ๋‹ค์Œ ์š”์ฒญ์— ์žฌํ™œ์šฉํ•œ๋‹ค.

    • ํ”„๋ก์‹œ ์บ์‹œ : client์—์„œ ์ž์ฃผ ์š”์ฒญ๋ฐ›๋Š” ๋‚ด์šฉ์€ ์›น ์„œ๋ฒ„๋กœ ์ „์†กํ•˜์ง€ ์•Š๊ณ  ์›น ์„œ๋ฒ„ ์•ž๋‹จ์˜ ํ”„๋ก์‹œ ์„œ๋ฒ„์— ์บ์‹ฑํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ex) nginx

  • NoSQL (Redis)

    • Remote Dictinary Server

      • Dictionary๋Š” Java์˜ ํ•ด์‹œ ๋งต์„ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. key๋ฅผ ์ง‘์–ด๋„ฃ์œผ๋ฉด value๊ฐ€ ํŠ€์–ด๋‚˜์˜ด.

  • EHcaceh

    • Java์˜ ์บ์‹ฑ API ๋ช…์„ธ์ธ JSR-107์„ ๋”ฐ๋ฅด๋Š” ์˜คํ”ˆ์†Œ์Šค ์บ์‹œ ๊ตฌํ˜„์ฒด

    • Spring, Hinbernate ORM์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์บ์‹œ

์ €์žฅ ์žฅ์น˜๋“ค์„ CPU์— ์–ผ๋งˆ๋‚˜ ๊ฐ€๊นŒ์šด์ง€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • Memory Hierarachy. ์—ฌ๊ธฐ์„œ ๋ฉ”๋ชจ๋ฆฌ๋Š” โ€œRAMโ€์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ์ €์žฅ ์ฐฝ์ง€์ด๋‹ค.

  • ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค.

์บ์‹œ๋Š” ์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ–๋‹ค๋†“๋Š” ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ๋‹ค. CPU์—์„œ ์ฃผ ๊ธฐ์–ต์žฅ์น˜, ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ๋น„์šฉ์ด ํฌ๋‹ค. ์บ์‹œ๋Š” CPU ์˜†์— ๋‹ฌ๋ ค ์žˆ์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๋น ๋ฅด๋‹ค.

CPU๋Š” ๋จผ์ € ์บ์‹œ๋ฅผ ์ฐธ์กฐํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด ์ฃผ๊ธฐ์–ต์žฅ์น˜(RAM, ROM)์„ ๋ฐฉ๋ฌธํ•œ๋‹ค.

๋”ฐ๋ผ์„œ CPU๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ๋‹ค ๋†“๋Š”๊ฒŒ ์œ ๋ฆฌํ•˜๋‹ค. ์ฆ‰, ์บ์‹œ ํžˆํŠธ์œจ์„ ๋†’์ด๋ฉด ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์„ฑ๋„์„ ํ–ฅ์ƒ ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ ํ˜•.

  • CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ง„์ž…ํ•˜๋Š” ์†๋„๊ฐ€ ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ

  • ๋ ˆ์ง€์Šคํ„ฐ๋ณด๋‹ค ์šฉ๋Ÿ‰์ด ํฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋น ๋ฅธ โ€œSRAMโ€ ๊ธฐ๋ฐ˜์˜ ์ €์žฅ ์žฅ์น˜

CPU์™€ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€๊นŒ์šด ๋ฌผ๋ฆฌ ์žฅ์น˜ ์ผ์ˆ˜๋ก ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ์šฉ๋Ÿ‰์ด ์ž‘๊ณ  ๋น„์‹ธ๋‹ค.

์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • CPU(์ฝ”์–ด)์™€ ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์ˆœ์„œ๋Œ€๋กœ L1, L2, L3 ์บ์‹œ๋ผ๊ณ  ํ•œ๋‹ค.

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU ๋‚ด๋ถ€/์™ธ๋ถ€์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ณ„์ธต์ ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ L1, L2๋Š” ๋‚ด๋ถ€์—, L3๋Š” ์™ธ๋ถ€์— ์œ„์น˜ํ•ด ์žˆ๋‹ค.

์œ„์—๋Š” โ€œ๋ฉ€ํ‹ฐ ์ฝ”์–ด ํ”„๋กœ์„ธ์„œโ€์˜ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์ด๋‹ค.

  • ์ฝ”์–ด๋งˆ๋‹ค L1, L2๋ฅผ ๋‘๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒํ™ฉ์— ๋”ฐ๋ผโ€œ์‹ฑํฌโ€๋ฅผ ์ž˜ ๋งž์ถฐ์•ผ ํ•œ๋‹ค.

์ฐธ์กฐ ์ง€์—ญ์„ฑ ์›๋ฆฌ

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ์šฉ๋Ÿ‰์ด ๋งŽ์ด ์ž‘๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๋‚ด์šฉ์„ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค.

  • ๋”ฐ๋ผ์„œ โ€œ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋‚ด์šฉ๋“ค์„โ€ ์˜ˆ์ธกํ•˜์—ฌ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.

์บ์‹œ๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์บ์‹œ ์ ์ค‘๋ฅ (Hit Rate)๊ฐ€ ๋†’์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์บ์‹œ๋กœ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” โ€œ์ง€์—ญ์„ฑ(Locality)โ€๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

  • ์ง€์—ญ์„ฑ : ๋ฐ์ดํ„ฐ์˜ ์ ‘๊ทผ์ด ์‹œ๊ฐ„/๊ณต๊ฐ„์ ์œผ๋กœ ๊ฐ€๊น๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.

์ฐธ์กฐ ์ง€์—ญ์„ฑ์˜ ์›๋ฆฌ๋Š” CPU๊ฐ€ ์‚ฌ์šฉํ•  ๋ฒ•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ๊ฒฝํ–ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์›๋ฆฌ์ด๋‹ค.

  1. CPU๋Š” โ€œ์ตœ๊ทผ ์ ‘๊ทผํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„โ€์— ๋‹ค์‹œ ์ ‘๊ทผํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค. (์‹œ๊ฐ„ ์ง€์—ญ์„ฑ)

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

  2. CPU๋Š” โ€œ์ ‘๊ทผํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๊ทผ์ฒ˜โ€๋ฅผ ์ ‘๊ทผํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค. (๊ณต๊ฐ„ ์ง€์—ญ์„ฑ)

    • ์ฆ‰, ๋น„์Šทํ•œ ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ์™€ ๊ฐ™์ด ์ ‘๊ทผํ•œ ๋ฐ์ดํ„ฐ ๊ทผ์ฒ˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•  ํ™•๋ฅ ์ด ๋†’๋‹ค.

    for ๋ฌธ์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๋ฐฐ์—ด์— ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ํ•ด๋‹น ๋ฐฐ์—ด์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ณ„์† ์‚ฌ์šฉํ•œ๋‹ค.

    • 1, 2, 3.. N๋ฒˆ index์— ์ ‘๊ทผํ•˜๋Š”๋ฐ ์ด๊ฒƒ์„ โ€œ์ˆœ์ฐจ ์ง€์—ญ์„ฑโ€์ด๋ผ๊ณ  ํ•œ๋‹ค.

์บ์‹ฑ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด โ€œ์ง€์—ญ์„ฑโ€์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์บ์‹œ ํžˆํŠธ์™€ ์บ์‹œ ๋ฏธ์Šค

์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU๊ฐ€ ์‚ฌ์šฉํ•  ๋ฒ•ํ•œ ๋Œ€์ƒ์„ โ€œ์—์ธกโ€ํ•˜์—ฌ ์ €์žฅํ•˜๋Š”๋ฐ,

  • ์ด๋•Œ CPU๊ฐ€ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ž˜ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด โ€œ์บ์‹œ ํžˆํŠธโ€

  • ๋ฐ˜๋Œ€๋กœ ์—†์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ(RAM)์— ์ง์ ‘ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋ฉด โ€œ์บ์‹œ ๋ฏธ์Šคโ€

์บ์‹œ ์ ์ค‘๋ฅ 

์บ์‹œ๊ฐ€ ๋ฏธ์Šค๋˜์ง€ ์•Š๊ณ  ํžˆํŠธ ๋œ ๋น„์œจ์ด โ€œ์บ์‹œ ์ ์ค‘๋ฅ โ€ ์ด๋‹ค.

์บ์‹œ ์ ์ค‘๋ฅ  = ์บ์‹œ ํžˆํŠธ / (์บ์‹œ ํžˆํŠธ + ์บ์‹œ ๋ฏธ์Šค)

์ ์ค‘๋ฅ ์ด ๋†’์„์ˆ˜๋ก CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, CPU ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋œ๋‹ค.

Last updated