์บ์‹œ(Cache) ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ธฐ

2025. 6. 3. 00:50ยทโš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ

๐Ÿš€ ์บ์‹œ(Cache)๋ž€?

์ง€๊ธˆ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ง์ ‘ ์กฐํšŒํ•ด์™”์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์€ I/O ์ž‘์—…์˜ ์˜ํ–ฅ์ด ํฌ๋‹ค๋Š” ๋ง์„ ๋“ค์–ด๋ดค์„ ๊ฒ๋‹ˆ๋‹ค.

๊ทธ๋งŒํผ ์žฆ์€ DB ์ ‘๊ทผ์€ ๋ถ€๋‹ด์ด ๋˜๋ฉฐ ์†๋„๋„ ๋А๋ฆฝ๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, ์ž์ฃผ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋นจ๋ฆฌ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ์š”?

 

๋ฐ”๋กœ ์บ์‹œ๊ฐ€ ๊ทธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
์บ์‹œ(Cache)๋ž€, ์ž์ฃผ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž„์‹œ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, ์บ์‹œ์˜ ๋ชฉ์ ์€ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ํ†ตํ•ด ์‘๋‹ต ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ , ์‹œ์Šคํ…œ ๋ถ€ํ•˜์™€ ๋น„์šฉ์„ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ์†๋„๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ ,

๋ฐ์ดํ„ฐ ์กฐํšŒ ์š”์ฒญ ์‹œ ์•„๋ž˜ ์ˆœ์„œ๋กœ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

CPU Register -> L1 Cache -> L2 Cache -> L3 Cache  -> ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(RAM) -> ๋””์Šคํฌ

 

์™ผ์ชฝ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ์šฉ๋Ÿ‰์ด ์ž‘๊ณ 

์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์†๋„๋Š” ๋А๋ฆฌ์ง€๋งŒ ์šฉ๋Ÿ‰์ด ํฝ๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์บ์‹œ๋Š” ๋Œ€๋ถ€๋ถ„ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ฒ˜๋Ÿผ ๋””์Šคํฌ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ , ํ›จ์”ฌ ๋น ๋ฅธ ์†๋„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ ๊ฐœ์„ ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“Œ ํŠน์ง•

โœ… ์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ(Temporal Locality)

ํ•œ ๋ฒˆ ์ฐธ์กฐ๋œ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋‹ค์‹œ ์ฐธ์กฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

 

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

ํ•œ ๋ฒˆ ๊ฐ€์ ธ์™”๋˜ ๋ฐ์ดํ„ฐ๋Š” ๋˜ ์“ธ ์ผ์ด ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ๋ณด๋Š” ๊ฒ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์‡ผํ•‘๋ชฐ์—์„œ '์ธ๊ธฐ ์ƒํ’ˆ ๋ชฉ๋ก'์€ ํ•œ ๋ฒˆ ์กฐํšŒ๋œ ํ›„ ์ž์ฃผ ๋‹ค์‹œ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

๋ชฉ๋ก์„ ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ด ๊ฐ€์ ธ์˜ฌ ํ•„์š” ์—†์ด ์บ์‹œ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ .

 

์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜์Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์กฐํšŒํ•  ๋•Œ ์บ์‹œ์— ์ €์žฅํ•˜๊ณ ,

์ดํ›„์—๋Š” ์บ์‹œ์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์œผ๋ฉด ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ์บ์‹œ๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๋•Œ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

โœ… ๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ(Spatial Locality)

์ฐธ์กฐ๋œ ๋ฐ์ดํ„ฐ์™€ ์ธ์ ‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ์ฐธ์กฐ๋  ํ™•๋ฅ ์ด ๋†’๋‹ค.

 

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

์„œ๋กœ ์ธ์ ‘ํ•˜์—ฌ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ์—ฐ์†์ ์œผ๋กœ ์ ‘๊ทผ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ํŠน์„ฑ์ž…๋‹ˆ๋‹ค.

 

CPU ์บ์‹œ๋‚˜ ๋””์Šคํฌ ์บ์‹œ์˜ ๊ฒฝ์šฐ ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ ‘๊ทผํ•  ๋•Œ

๊ทธ ์ฃผ์†Œ ๋ฟ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ๋ธ”๋ก์„ ํ†ต์งธ๋กœ ์บ์‹œ์— ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.


๐Ÿ“Œ ์ฃผ์š” ์šฉ์–ด

โœ… ์บ์‹œ ํžˆํŠธ(Cache Hit)

์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์— ์กด์žฌํ•˜์—ฌ ์ฆ‰์‹œ ์ฐพ์•„๋‚ธ ๊ฒฝ์šฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

โœ… ์บ์‹œ ๋ฏธ์Šค(Cache Miss)

์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์— ์—†๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์บ์‹œ ๋Œ€์‹  ์›๋ณธ ์ €์žฅ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ ํ›„ ์บ์‹œ์— ์ €์žฅํ•˜์—ฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

โœ… ์บ์‹œ ์ ์ค‘๋ฅ (Cache Hit Rate)

"์บ์‹œ ์ ์ค‘๋ฅ  = ์บ์‹œ ํžˆํŠธ / ์ด ์š”์ฒญ ์ˆ˜"

 

์ด ์š”์ฒญ ๋Œ€๋น„ ์บ์‹œ๊ฐ€ ํžˆํŠธ๋œ ํšŸ์ˆ˜๋ฅผ ๋น„์œจ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์บ์‹œ ์ ์ค‘๋ฅ ์ด ๋†’์„์ˆ˜๋ก ํžˆํŠธ ๋น„์œจ์ด ๋งŽ๊ณ , ์บ์‹œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‹œ์Šคํ…œ ์„ฑ๋Šฅ๊ณผ ๋น„์šฉ ์ ˆ๊ฐ ํšจ๊ณผ๋ฅผ ์ •๋Ÿ‰์ ์œผ๋กœ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ต์‹ฌ ์ง€ํ‘œ๋กœ ์ค‘์š”ํ•œ ์šฉ์–ด์ž…๋‹ˆ๋‹ค.


์ฐธ๊ณ ์ž๋ฃŒ

  • ์บ์‹œ๋ž€ ๋ฌด์—‡์ผ๊นŒ?
  • ์บ์‹œ/ ์›น ์บ์‹œ(Cache)๋ž€?

 

 

 

 

๋ฐ˜์‘ํ˜•

'โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[OS] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ ๊ฒฝ์Ÿ ์ƒํƒœ ํ•ด๊ฒฐ: ์ƒํ˜ธ ๋ฐฐ์ œ (๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด)  (2) 2025.06.02
โš™๏ธ ํ”„๋กœ์„ธ์Šค(Process) / ์Šค๋ ˆ๋“œ(Thread) ๊ฐœ๋… ์ •๋ฆฌ  (3) 2025.06.02
๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ  (0) 2025.05.14
[๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ  (1) 2025.04.25
CI/CD ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ  (1) 2025.04.15
'โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [OS] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ ๊ฒฝ์Ÿ ์ƒํƒœ ํ•ด๊ฒฐ: ์ƒํ˜ธ ๋ฐฐ์ œ (๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด)
  • โš™๏ธ ํ”„๋กœ์„ธ์Šค(Process) / ์Šค๋ ˆ๋“œ(Thread) ๊ฐœ๋… ์ •๋ฆฌ
  • ๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ
  • [๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (46)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (1)
      • ๐ŸŒฟSpring (15)
      • โ˜•Java (8)
      • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (3)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
      • โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (13)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (0)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    Spring
    ์„œ๋ฒ„
    ์ž๋ฃŒ๊ตฌ์กฐ
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    Spring Security
    ๋ฐฐํฌ
    GIT
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    docker
    ๊ฐœ๋ฐœ
    Java
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
์บ์‹œ(Cache) ๊ฐœ๋… ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”