๐Ÿ‘ฉ‍๐Ÿ’ป/CSS3

HTTP/1๊ณผ HTTP/2์˜ ๋น„๊ต ๊ทธ๋ฆฌ๊ณ  CSS ์Šคํ”„๋ผ์ดํŠธ(Sprite) ๊ธฐ๋ฒ•์˜ ์œ ํšจ์„ฑ

ํ•œ๋‚˜ 2020. 10. 27. 09:19

 

๋งจ ์ฒ˜์Œ ํ”„๋ก ํŠธ์—”๋“œ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋Š” ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์„ ๊ฒฝํ—˜ํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋‹ค๊ฐ€, ํ•™์›์—์„œ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์ฒ˜์Œ ์ ‘ํ•˜๊ณ  ๊ต‰์žฅํžˆ ์‹ ๊ธฐํ–ˆ์—ˆ๋‹ค. background-image, background-position ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งค๋ฒˆ ์ด์šฉํ•˜๋ฉฐ, ์ƒ๋‹นํžˆ ๊ท€์ฐฎ์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๋‚˜๋ฆ„ HTTP/1 ํ”„๋กœํ† ์ฝœ์—์„œ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์„ ๋œ ํ•˜๊ธฐ ์œ„ํ•œ ๋‚˜๋ฆ„์˜ ๋…ธ๋ ฅ์œผ๋กœ ํƒ„์ƒํ•œ ๊ธฐ๋ฒ•์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค.

 

์šฐ์„  ์ด ์„ธ ๊ฐ€์ง€์˜ ๊ด€๊ณ„๋„๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” HTTP/2์™€ HTTP/1์˜ ์ฐจ์ด์ ์„ ์•Œ์•„์•ผ ํ•œ๋‹ค. HTTP๋Š” ์›น ์„œ๋น„์Šค์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์— ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ๋กœ, ์—ฌ๊ธฐ์—์„œ๋„ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์ด ๊ธฐ์กด์˜ ๊ธฐ์ˆ ์„ ๋ณด์™„ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ๋„์ž…๋˜๋Š” ๊ฒƒ์€ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. HTTP/2 ์—ญ์‹œ HTTP/1์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋„์ž…๋˜์—ˆ๋‹ค.

 

HTTP/1

  • ์ด๋ฏธ ๋‚˜์˜จ ์ง€ 30๋…„์ด ๋„˜์€ ํ”„๋กœํ† ์ฝœ. ์‹ฌ์ง€์–ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ์ตœ์ดˆ์—๋Š” ๋ฌธ์„œ๋งŒ์„ ์ฝ๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ ์„ค๊ณ„๊ฐ€ ๋˜์—ˆ๋‹ค. ๋‹น์—ฐํžˆ ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ์›น ์•ฑ์„ ์ œ๋Œ€๋กœ ์ง€์›ํ•ด์ฃผ์ง€ ๋ชปํ•œ๋‹ค.
  • HTTP/1์—์„œ๋Š” ํ”„๋กœํ† ์ฝœ ์ฐจ์›์—์„œ ์‘๋‹ต ๋‹ค์ค‘ํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด ๋ง์€ ์ฆ‰, ์‘๋‹ต์„ ๋ณ‘๋ ฌ๋กœ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ๊ณ  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ปค๋ฒ„ํ•˜๋Š” ์˜์—ญ์ด์—ˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋‹น์—ฐํžˆ ๋ธŒ๋ผ์šฐ์ €๋ณ„๋กœ ์š”์ฒญ์„ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌํ•  ๋•Œ ๊ฐ€๋Šฅํ•œ ๊ฐฏ์ˆ˜๊ฐ€ ๋‹ฌ๋ž๋‹ค. (์˜ˆ, Opera, Firefox, Chrome ์ถœ์ฒ˜ ๋ณ„๋กœ 6๊ฐœ์”ฉ, Internet Explorer ์ถœ์ฒ˜๋ณ„๋กœ 10~11๊ฐœ)
  • ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ดˆ๊ธฐํ™”๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์†Œ์Šค ์š”์ฒญ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ์„ ์จ์•ผ ํ–ˆ๋‹ค. ์ตœ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ์š”์ฒญ ๊ฐฏ์ˆ˜๋ฅผ ์ค„์ด๊ฑฐ๋‚˜ ๋ฆฌ์†Œ์Šค ์ž์ฒด์˜ ์šฉ๋Ÿ‰์„ ์ค„์ด๋ ค๋Š” ๋…ธ๋ ฅ์ด ์žˆ์—ˆ๋‹ค.
    • index.js๋‚˜ style.css์— ํ•˜๋‚˜์˜ ๋ฒˆ๋“ค๋กœ ๋‚˜๋จธ์ง€ JavaScript ํŒŒ์ผ์ด๋‚˜ CSS ํŒŒ์ผ์„ ๋‹ด๋Š” ๋ฐฉ์‹
    • ํ˜น์€ Minify, Uglify ๊ฐ™์€ ๊ธฐ๋ฒ•์œผ๋กœ ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ
    • ๊ทธ๋ฆฌ๊ณ  ํฉ์–ด์ง„ ๊ฐœ๋ณ„์ ์ธ ์ด๋ฏธ์ง€๋ฅผ ํ•˜๋‚˜์˜ ์ปค๋‹ค๋ž€ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ์œ„์น˜๊ฐ’์„ ์กฐ์ ˆํ•ด ๋งˆ์Šคํ‚นํ•˜๊ธฐ. ์ด๊ฒŒ ๋ฐ”๋กœ ์Šคํ”„๋ผ์ดํŠธ ๋ฐฉ์‹์ด๋‹ค.

์Šคํ”„๋ผ์ดํŠธ

๋‹ค์Œ ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด์–ด ๋„คํŠธ์›Œํฌ -> Img์˜ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ํด๋ฆญํ•ด์„œ ํ™•์ธํ•ด๋ณด์•˜๋‹ค.

๋‹ค์Œ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ์›น ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์€ ๋ฌด์ฒ™ ์œ ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์ฒ˜์Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ๋‹ค์šด ๋ฐ›์•„์•ผ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค์˜ ์–‘(HTTP ์š”์ฒญ ํšŸ์ˆ˜)์„ ์ค„์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋„คํŠธ์›Œํฌ์˜ ํŠธ๋ž˜ํ”ฝ์€ ์œ ์ €์—๊ฒŒ๋„, ์„œ๋น„์Šค ์ œ๊ณต์ž์—๊ฒŒ๋„ ๋ถ€๋‹ด์œผ๋กœ ์ž‘์šฉํ•  ์ˆ˜๋ฐ–์— ์—†๋‹ค.

์ด๋Ÿฐ ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์˜ 2D ๊ทธ๋ž˜ํ”ฝ ํ”„๋กœ์„ธ์Šค์—์„œ๋„ ์ „ํ†ต์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•ด์˜จ ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

HTTP/2๋Š” ์ถœ์ฒ˜๋ณ„๋กœ ์ตœ๋Œ€ 128๊ฐœ์˜ ๋ณ‘๋ ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ์„ ๋ฒˆ๋“ค๋งํ•˜์ง€ ์•Š์•„๋„, ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์„ ์“ฐ์ง€ ์•Š์•„๋„ ๋งŽ์€ ์–‘์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋™์‹œ์— ์š”์ฒญํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, HTTP/2๊ฐ€ HTTP/1์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ–ˆ๋‹ค๊ณ  ํ•ด๋„, HTTP/2 ํ™˜๊ฒฝ์—์„œ ์Šคํ”„๋ผ์ดํŠธ ๊ธฐ๋ฒ•์„ ์“ฐ๋Š” ๊ฒŒ ์—ฌ์ „ํžˆ ์œ ํšจํ• ๊นŒ ๊ถ๊ธˆ์ฆ์ด ๋‚จ๋Š”๋‹ค.

 

์ฐธ๊ณ 

CSS๋ฅผ ์ด์šฉํ•œ ์Šคํ”„๋ผ์ดํŠธ(Sprite) ๊ธฐ๋ฒ•