- 전체(91)
- html5(1)
- web accessibility(11)
- Cross Browsing(20)
- html basic(7)
- css basic(23)
- meta(2)
- form(12)
- table(2)
- menu(2)
- box(1)
- button(1)
- font(1)
- etc(8)
- CSS 애니메이션
디바이스마다 여러 가지 브라우저가 사용되고 있고, 사용하는 버전 역시 다양하기 때문에 HTML5 크로스 브라우징은 중요한 이슈입니다. HTML5 크로스 브라우징에서 자주 등장하는 용어가 ‘폴리필(Polyfill)’ 입니다.
외국 사이트의 튜토리얼이나 예제를 공부하다 보면 ‘폴리필(polyfill)’이란 용어를 만나곤 하는데, 오늘은 ‘폴리필’이 무엇인지 알아보도록 하겠습니다.
HTML5 마크업 뿐만 아니라 HTML5 API는 웹 표준을 향해 가고 있지만 실제 모든 브라우저에서 동시에 지원하고 있지 못합니다. HTML5이 논의되기 전 구식 브라우저들은 당연히 그렇고요, 최신 브라우저라 하더라도 브라우저 버전별로, 혹은 브라우저 벤더에 따라서 지원하는 내용이 달라집니다. 이렇게 HTML5 스펙의 기능들이 어떤 브라우저에서는 되고, 어떤 브라우저에서는 안되는 것을 브라우저 파편화(browser fragmentation)이라고 합니다.
개발자에게 브라우저 파편화는 골치아픈 문제 중 하나인데요, 이런 파편화를 줄이기 위해, 비슷하게라도 같은 결과를 만들기 위해 여러 가지 방법들을 동원합니다. 이런 방법들을 shim이라고 부릅니다. (fallback이라 부르기도 합니다)
사전에서 shim을 찾아보면 틈 새를 메우는 “끼움쇠” 정도로 설명되어 있을텐데요, HTML5를 지원하지 않는 브라우저의 공백(hole)을 메우는 스크립트나 기타 코드라고 생각하시면 쉬울 것입니다.
폴리필(polyfill)은 파편화를 보이는 브라우저에 삽입하는 자바스크립트 소스로, 브라우저를 스스로 판별하여 해당 브라우저에 필요한 shim을 알아서 끼워넣어줍니다.
폴리필이란 용어를 처음 사용한 사람은 영국의 개발자 Remy Sharp인데요, 그의 설명에 따르면 “poly”란 여러 가지 방법을 의미하고 “fill”은 브라우저의 공백을 메운다는 의미라고 합니다. 즉, 브라우저들 간의 지원 공백을 다양한 방법으로 메우는 것이라고 생각하면 될 것입니다. 좀더 자세한 설명은 그의 블로그에 있는 What is a Polyfill?을 참고하세요.
개발되어 있는 폴리필들은 꽤 많은데 그것을 한 곳에 모아놓은 페이지도 있더군요. HTML5 Cross Browser Polyfills. HTML5 크로스 브라우징을 위한 폴리필이나 심(shim), 폴백(fallback)을 한눈에 볼 수 있습니다.
혹시 폴리필을 직접 개발해 보고 싶으신가요? 그렇다면 이곳을 참고하세요^^ The Developer’s Guide To Writing Cross-Browser Javascript Polyfills.
댓글 쓰기 권한이 없습니다.
91 | Modernizr - 브라우저 기능검사 | 2017.05.29 |
90 | 화면 깜빡임(FOUC) 문제해결 | 2017.05.29 |
89 | 폼 필드(input type="file") | 2017.05.29 |
88 | 폼필드(체크박스, 라디오) | 2017.05.29 |
87 | 폼 필드(select 박스) | 2017.05.29 |
86 | 폼 필드(input type="text") | 2017.05.29 |
85 | select box, input box style 초기화 CSS | 2017.05.29 |
84 | 파일 찾기 | 2017.04.27 |
83 | 디자이너를 위한 오픈소스 프로젝트 6선 | 2017.04.27 |
82 | 이메일별 border-radius 처리 방법 | 2017.03.14 |
81 | CSS를 최적화하고 파일크기를 줄이는 15가지 방법 | 2017.03.14 |
80 | tooltip | 2017.03.14 |
79 | height 100% 높이의 레이아웃잡기 | 2017.03.14 |
78 | 웹접근성 | 2017.03.14 |
77 | css3로 슬라이드 만들기 | 2017.03.14 |
> | HTML5 브라우저 파편화를 최소화해주는 폴리필(POLYFILL)이란? | 2017.02.08 |
75 | 인라인 코딩 사이에 개행으로인한 공백 없애기 | 2017.02.08 |
74 | opacity | 2016.05.30 |
73 | 말줄임 | 2016.05.27 |
72 | background-size: cover | 2016.05.27 |