๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ„ฐ๋””/์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ์™€ ์ •๋ณด๊ธฐ์ˆ ์˜ ์›๋ฆฌ] 10์žฅ ์›น์บ์‹ฑ ๊ธฐ๋ฒ•

by moon101 2023. 4. 13.

1.  ์›น์บ์‹ฑ

์›น์บ์‹ฑ์ด๋ž€?

  • ์›น ์‚ฌ์šฉ์ž์— ์˜ํ•ด ๋นˆ๋ฒˆํžˆ ์š”์ฒญ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์™€ ์ง€๋ฆฌ์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ์›น์บ์‹œ ์„œ๋ฒ„์— ๋ณด๊ด€ํ•ด ๋น ๋ฅธ ์„œ๋น„์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋ฒ•

์บ์‹œ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

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

 

3.  ์›น์บ์‹œ์˜ ์ผ๊ด€์„ฑ ์œ ์ง€ ๊ธฐ๋ฒ•

์บ์‹ฑ๋œ ์›น ๊ฐ์ฒด๊ฐ€ ๊ทผ์›์ง€ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์›น์บ์‹œ์—๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ํšจํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์ผ๊ด€์„ฑ ์œ ์ง€ ๊ธฐ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค

  • ์ผ๋ฐ˜์ ์œผ๋กœ ์›น์บ์‹ฑ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ ์‘์  TTL(adaptive Time-To-Live) ๊ธฐ๋ฒ•๊ณผ ๊ฐ™์€ ์•ฝํ•œ ์ผ๊ด€์„ฑ ์œ ์ง€(weak consistency) ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค

์›น์บ์‹œ์˜ ์ผ๊ด€์„ฑ ์œ ์ง€๋ฅผ ์œ„ํ•œ ์ „ํ˜•์ ์ธ ๊ธฐ๋ฒ•๋“ค

  • ๊ฐ•ํ•œ ์ผ๊ด€์„ฑ ์œ ์ง€ ๊ธฐ๋ฒ•
    • polling-every-time: ์บ์‹œ ๋‚ด์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ๊ทผ์›์ง€ ์„œ๋ฒ„์— ๊ฐ์ฒด์˜ ๋ณ€๊ฒฝ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•
    • invalidation: ๊ทผ์›์ง€ ์„œ๋ฒ„๊ฐ€ ์ž์‹ ์˜ ๊ฐ์ฒด๋ฅผ ์บ์‹ฑํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ํ”„๋ฝ์‹œ์„œ๋ฒ„๋ฅผ ๊ธฐ๋กํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น ํ”„๋ก์‹œ์„œ๋ฒ„๋“ค์—๊ฒŒ ๋ณ€๊ฒฝ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•
  • ์•ฝํ•œ ์ผ๊ด€์„ฑ ์œ ์ง€ ๊ธฐ๋ฒ•
    • adaptive TTL: ์บ์‹œ ๋‚ด์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ, ํ•ด๋‹น ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ตœ์ข… ๋ณ€๊ฒฝ ์‹œ๊ฐ๊ณผ ์ตœ์ข… ํ™•์ธ ์‹œ์ž‘์„ ๊ณ ๋ คํ•ด์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ทผ์›์ง€ ์„œ๋ฒ„์— ๋ณ€๊ฒฝ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•

 

4.  ์›น์บ์‹œ์˜ ๊ณต์œ  ๋ฐ ํ˜‘๋ ฅ ๊ธฐ๋ฒ•

์›น ์บ์‹ฑ์˜ ํšจ๊ณผ๋ฅผ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›น์บ์‹œ ๊ฐ„์˜ ๊ณต์œ  ๋ฐ ํ˜‘๋ ฅ ๊ธฐ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค

  • ์ธํ„ฐ๋„ท ์บ์‹œ ํ”„๋กœํ† ์ฝœ(Internet Cache Protocol: ICP)
    • ๋™๋ฃŒ ํ”„๋ฝ์‹œ์บ์‹œ๋“ค ์‚ฌ์ด์—์„œ ์›น ๊ฐ์ฒด์˜ ๊ฒ€์ƒ‰ ๋ฐ ์ „์†ก์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ
    • ๊ณต์œ  ์›น์บ์‹œ๋“ค ๊ฐ„์— ๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ

 

5.  ์›น์บ์‹œ์˜ ์‚ฌ์ „์ธ์ถœ ๊ธฐ๋ฒ•

์‚ฌ์ „์ธ์ถœ(prefetching) ๊ธฐ๋ฒ•์ด๋ž€?

  • ์›น์„œ๋น„์Šค์˜ ์‘๋‹ต ์ง€์—ฐ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์˜ ์ผํ™˜์œผ๋กœ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์•„์ง ์š”์ฒญ๋˜์ง€ ์•Š์€ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ๋ฒ•
  • ์˜ˆ์ธก ์‚ฌ์ „์ธ์ถœ ๊ธฐ๋ฒ•(predictive prefetching)
    • ๊ด€๊ณ„ ๊ทธ๋ž˜ํ”„(dependency graph) ๋“ฑ์„ ๊ตฌ์„ฑํ•ด ํ•˜๋‚˜์˜ ์›น ํŽ˜์ด์ง€๊ฐ€ ์ฐธ์กฐ๋˜์—ˆ์„ ๋•Œ ์ƒˆ๋กœ์šด ์›นํŽ˜์ด์ง€๊ฐ€ ์ฐธ์กฐ๋  ํ™•๋ฅ ์„ ๊ณผ๊ฑฐ์˜ ์ฐธ์กฐ ๊ธฐ๋ก์„ ํ†ตํ•ด ์˜ˆ์ธกํ•˜๊ณ  ์ด ํ™•๋ฅ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์ „์ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋Œ€ํ™”์‹ ์‚ฌ์ „์ธ์ถœ ๊ธฐ๋ฒ•(interactive prefetching)
    • ์‚ฌ์šฉ์ž๊ฐ€ HTML๋ฌธ์„œ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ–ˆ์„ ๋–„ ์›น์บ์‹œ๋Š” ์บ์‹ฑํ•˜๊ณ  ์žˆ๋Š” HTML ๋ฌธ์„œ๋ฅผ ๋ฏธ๋ฆฌ ํŒŒ์‹ฑํ•ด ๊ทธ ๋ฌธ์„œ์— ํฌํ•จ(embeded)๋˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ(link)๋œ ์›น ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ›์•„์™€์„œ ์‚ฌ์šฉ์ž์˜ ํ›„์† ์š”์ฒญ์— ๊ณง๋ฐ”๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋ฒ•

 

 

๋Œ“๊ธ€