๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/HTML5

์‹œ๋งจํ‹ฑ ํƒœ๊ทธ

<Do it! HTML5+CSS3>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

๋ชฉ์ฐจ

  • 1) ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฌธ์„œ ๊ตฌ์กฐ
  • 2) ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”(IE8์ดํ•˜) ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • 2-1. HTML5 Shiv ์‚ฌ์šฉ๋ฒ•
  • 2-2. ํด๋ฆฌํ•„(pollyfill)

 

์‹œ๋งจํ‹ฑ ํƒœ๊ทธ

์‹œ๋งจํ‹ฑ์ด๋ž€ '์˜๋ฏธ๋ก ์ ์ธ', '์˜๋ฏธ๊ฐ€ ํ†ตํ•˜๋Š”' ์ด๋ผ๋Š” ๋œป์ด๋‹ค.

์›น ๋ฌธ์„œ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค ๋•Œ ์‹œ๋งจํ‹ฑ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์†Œ์Šค๋งŒ์œผ๋กœ๋„ ๋ฌธ์„œ ๋‚ด์šฉ์„ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ์‚ฌ์ดํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋–„ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์ •ํ™•ํžˆ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ•˜๋‹ค.

๋˜ํ•œ ํƒœ๊ทธ์— ๋Œ€ํ•œ ์—ญํ• ์ด ์ •ํ™•ํžˆ ์ •ํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์žฅ์น˜์—์„œ๋“  ๋ฌธ์„œ๋ฅผ ๋˜‘๊ฐ™์ด ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1) ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฌธ์„œ ๊ตฌ์กฐ

ํƒœ๊ทธ ์„ค๋ช… ์œ„์น˜ ์‚ฌ์šฉ
<header> ํŠน์ • ๋ถ€๋ถ„์˜ ๋จธ๋ฆฌ๋ง ์‚ฌ์ดํŠธ ์ „์ฒด์˜ ํ—ค๋”๋Š” ์ฃผ๋กœ ํŽ˜์ด์ง€ ๋งจ ์œ„์ชฝ์ด๋‚˜ ์™ผ์ชฝ ๊ฒ€์ƒ‰ ์ฐฝ, ์‚ฌ์ดํŠธ ๋ฉ”๋‰ด
<nav> ๋™์ผํ•œ ์‚ฌ์ดํŠธ ์•ˆ์˜ ๋ฌธ์„œ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์˜ ๋ฌธ์„œ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋งํฌ ๋ชจ์Œ   <nav>๋งˆ๋‹ค ID๋ฅผ ๋”ฐ๋กœ ์ง€์ •ํ•ด ์ฃผ๋ฉด ๊ฐ ๋„ค๋น„๊ฒŒ์ด์…˜๋งˆ๋‹ค ์Šคํƒ€์ผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ
<article> ์ฝ˜ํ…์ธ  ์˜์—ญ    
<section> ์ฝ˜ํ…์ธ ๋ฅผ ์ฃผ์ œ๋ณ„๋กœ ๋ฌถ์„ ๋–„ ์‚ฌ์šฉ๋จ    
<aside> ๋ณธ๋ฌธ ๋‚ด์šฉ ์™ธ์— ์ฃผ๋ณ€์— ํ‘œ์‹œ๋˜๋Š” ๊ธฐํƒ€ ๋‚ด์šฉ๋“ค์„ ๋‚˜ํƒ€๋ƒ„ ์‚ฌ์ดํŠธ์˜ ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ ๋˜๋Š” ํ•˜๋‹จ ์‚ฌ์ด๋“œ๋ฐ”
<iframe> ์ธ๋ผ์ธ ํ”„๋ ˆ์ž„(๋‹ค๋ฅธ ์›น ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์™€ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ) ์‚ฝ์ž…    
<footer> ์ œ์ž‘ ์ •๋ณด์™€ ์ €์ž‘๊ถŒ ์ •๋ณด ํ‘œ์‹œ ์›น ๋ฌธ์„œ ๋์ž๋ฝ ์‚ฌ์ดํŠธ ์ œ์ž‘์ž์˜ ์—ฐ๋ฝ์ฒ˜ ์ •๋ณด์™€ ์ €์ž‘๊ถŒ ์ •๋ณด ํ‘œ์‹œ
<address> ์‚ฌ์ดํŠธ ์ œ์ž‘์ž  ์ •๋ณด, ์—ฐ๋ฝ์ฒ˜ ์ •๋ณด ํ‘œ์‹œ footerํƒœ๊ทธ ์•ˆ  

 

 

2) ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”(IE8์ดํ•˜) ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ HTML5 Shiv๋ฅผ ์‚ฌ์šฉํ•ด ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2-1. HTML5 Shiv ์‚ฌ์šฉ๋ฒ•

github.com/aFarkas/html5shiv

์œ„์˜ ํŽ˜์ด์ง€์—์„œ ์„ค๋ช… ๋‚ด์šฉ ์ค‘์— ์žˆ๋Š” [latest zip package]๋งํฌ ํด๋ฆญ > ๋‹ค์šด๋กœ๋“œ๋œ ํŒŒ์ผ์˜ ์••์ถ•์„ ํ‘ผ ํ›„ [src > html5shiv.js]ํŒŒ์ผ์„ ์›ํ•˜๋Š” ํด๋”๋กœ ๋ณต์‚ฌํ•ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

/*html5shiv.jsํŒŒ์ผ์„ 'js'ํด๋”์— ์ €์žฅํ–ˆ๋‹ค๋ฉด 
<head></head>๋‚ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด
IE8์ดํ•˜ ๋ฒ„์ „์—์„œ๋„ ์‹œ๋งจํ‹ฑ ํƒœ๊ธ€๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค.*/

<!-- [if it IE9]
    <script src="js/html5shiv.js"></script>
<![endif] -->

 

2-2. Pollyfill

- ๋ธŒ๋ผ์šฐ์ € ํŒŒํŽธํ™”(browser fragmentation) : HTML5 ํ‘œ์ค€ ๊ธฐ๋Šฅ๋“ค์ด ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋˜๊ณ  ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์•ˆ๋˜๋Š” ํ˜„์ƒ

- ์‹ฌ(shim)๋˜๋Š” ํด๋ฐฑ(fallback) : ๋ธŒ๋ผ์šฐ์ € ํŒŒํŽธํ™”๋ฅผ ์ค„์ด๊ณ  ๋น„์Šทํ•˜๊ฒŒ๋ผ๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•

- ํด๋ฆฌํ•„(pollyfill) : ํŒŒํŽธํ™”๊ฐ€ ์ƒ๊ธฐ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์‚ฝ์ž…ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์Šค์Šค๋กœ ์ง„๋‹จํ•ด ํ•„์š”ํ•œ shim์„ ์ž๋™์œผ๋กœ ๋ผ์›Œ ๋„ฃ์–ด ์ค€๋‹ค.

- ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์€ ์‚ฌ์ดํŠธ : github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills