Skip to content

Latest commit

Β 

History

History
36 lines (23 loc) Β· 3.43 KB

Polyfill.md

File metadata and controls

36 lines (23 loc) Β· 3.43 KB

Polyfill

κ°œμš”

  • 폴리필(Polyfill)은 μ›Ή κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” κ°œλ…μœΌλ‘œ, μ›Ή ν”Œλž«νΌμ˜ ν‘œμ€€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ§€ μ•Šμ€ 였래된 λΈŒλΌμš°μ €λ‚˜ ν™˜κ²½μ—μ„œλ„ λ™μž‘ν•  수 μžˆλ„λ‘ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” μ½”λ“œ 쑰각을 λ§ν•œλ‹€.

  • μ›Ή ν”Œλž«νΌμ€ κ³„μ†ν•΄μ„œ λ°œμ „ν•˜κ³  μƒˆλ‘œμš΄ ν‘œμ€€κ³Ό κΈ°λŠ₯이 μΆ”κ°€λœλ‹€. ν•˜μ§€λ§Œ 였래된 λ²„μ „μ˜ λΈŒλΌμš°μ €λŠ” μ΅œμ‹  ν‘œμ€€μ„ μ§€μ›ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€.

  • μ΄λŸ¬ν•œ κ²½μš°μ— 폴리필은 λΈŒλΌμš°μ €μ— μ—†λŠ” νŠΉμ • κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ—¬ κ·Έ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•œλ‹€.

  • 폴리필은 JavaScript둜 μž‘μ„±λ˜λ©°, μ›Ή κ°œλ°œμžκ°€ νŠΉμ • κΈ°λŠ₯이 μ§€μ›λ˜μ§€ μ•ŠλŠ” λΈŒλΌμš°μ €μ—μ„œλ„ λ™μž‘ν•˜λ„λ‘ μ½”λ“œλ₯Ό μΆ”κ°€ν•  수 있게 ν•œλ‹€.

  • 폴리필은 두 가지 μ£Όμš” ν˜•νƒœλ‘œ λ‚˜λ‰œλ‹€:

    • κΈ°λŠ₯ 폴리필(Functionality polyfills): μ΄λŸ¬ν•œ 폴리필은 μ›Ή ν”Œλž«νΌμ˜ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μ§€μ›ν•˜μ§€ μ•ŠλŠ” λΈŒλΌμš°μ €μ— μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•œλ‹€. 예λ₯Ό λ“€μ–΄, 였래된 λΈŒλΌμš°μ €μ—μ„œ fetch APIλ₯Ό μ‚¬μš©ν•˜λ €λ©΄ fetch APIλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ” λΈŒλΌμš°μ €μ—μ„œλ„ λ™μž‘ν•  수 μžˆλŠ” 폴리필을 μΆ”κ°€ν•΄μ•Ό ν•œλ‹€.
    • 문법 폴리필(Syntax polyfills): μ΄λŸ¬ν•œ 폴리필은 였래된 λ²„μ „μ˜ JavaScript μ—”μ§„μ—μ„œ μ΅œμ‹  JavaScript 문법을 μ‚¬μš©ν•  수 μžˆλ„λ‘ 도와쀀닀. 예λ₯Ό λ“€μ–΄, 였래된 λ²„μ „μ˜ λΈŒλΌμš°μ €μ—μ„œ constλ‚˜ letκ³Ό 같은 블둝 λ²”μœ„ λ³€μˆ˜ 선언을 μ‚¬μš©ν•˜λ €λ©΄ 폴리필을 μ‚¬μš©ν•˜μ—¬ 이λ₯Ό 지원해야 ν•œλ‹€.
  • 폴리필은 일반적으둜 JavaScript λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„μ›Œν¬μ™€ ν•¨κ»˜ μ‚¬μš©λœλ‹€. λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„μ›Œν¬λŠ” 자체적으둜 폴리필을 μ œκ³΅ν•  μˆ˜λ„ μžˆλ‹€. λ˜ν•œ, κ°œλ°œμžλ“€μ€ ν•„μš”ν•œ 폴리필을 μ°Ύμ•„μ„œ μ‚¬μš©ν•˜κ±°λ‚˜ 직접 μž‘μ„±ν•  μˆ˜λ„ μžˆλ‹€.

  • 폴리필을 μ‚¬μš©ν•˜μ—¬ 였래된 λΈŒλΌμš°μ €μ™€ ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜λ©΄μ„œ μ΅œμ‹  μ›Ή κΈ°μˆ μ„ ν™œμš©ν•  수 μžˆλ‹€. μ΄λŠ” μ›Ή κ°œλ°œμžλ“€μ—κ²Œ ν”Œλž«νΌμ˜ μ œν•œμ„ κ·Ήλ³΅ν•˜κ³  λͺ¨λ“  μ‚¬μš©μžμ—κ²Œ λ™μΌν•œ μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•˜λŠ” 데 도움을 μ€€λ‹€.


라이브러리 예

  1. Babel
    Babel은 JavaScript μ»΄νŒŒμΌλŸ¬μ΄λ©΄μ„œ λ™μ‹œμ— 폴리필도 μ œκ³΅ν•˜λŠ” 유λͺ…ν•œ 도ꡬ. Babel을 μ‚¬μš©ν•˜λ©΄ μ΅œμ‹  JavaScript 문법을 μ‚¬μš©ν•˜κ³ , λΈŒλΌμš°μ € ν˜Έν™˜μ„±μ„ μœ„ν•΄ ν•„μš”ν•œ 폴리필을 μžλ™μœΌλ‘œ μ μš©ν•  수 μžˆλ‹€.

  2. Polyfill.io
    Polyfill.ioλŠ” ν•„μš”ν•œ ν΄λ¦¬ν•„λ§Œ λ™μ μœΌλ‘œ μ œκ³΅ν•˜λŠ” ν΄λΌμš°λ“œ 기반 μ„œλΉ„μŠ€. 이 μ„œλΉ„μŠ€λŠ” λΈŒλΌμš°μ €μ˜ user-agentλ₯Ό 기반으둜 ν•„μš”ν•œ 폴리필을 μžλ™μœΌλ‘œ μ„ νƒν•˜κ³  μ œκ³΅ν•΄μ€€λ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ ν•„μš”ν•œ ν΄λ¦¬ν•„λ§Œ λ‹€μš΄λ‘œλ“œν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ μ΅œμ ν™”λœ λ²ˆλ“€μ„ μ œκ³΅ν•  수 μžˆλ‹€.

  3. core-js
    core-jsλŠ” ECMAScript ν‘œμ€€μ— κΈ°λ°˜ν•œ 폴리필 라이브러리. λ‹€μ–‘ν•œ κΈ°λŠ₯κ³Ό λ¬Έλ²•μ˜ 폴리필을 μ œκ³΅ν•˜λ©°, ν•„μš”ν•œ ν΄λ¦¬ν•„λ§Œ μ„ νƒμ μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.

  4. polyfill.io CDN
    polyfill.io CDN은 Polyfill.io μ„œλΉ„μŠ€μ˜ CDN λ²„μ „μœΌλ‘œ, ν•„μš”ν•œ 폴리필을 λ™μ μœΌλ‘œ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. CDN을 μ‚¬μš©ν•˜λ©΄ 자체 μ„œλ²„μ— 폴리필을 ν˜ΈμŠ€νŒ…ν•  ν•„μš”μ—†μ΄ κ°„νŽΈν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€.

  5. Modernizr
    ModernizrλŠ” λΈŒλΌμš°μ €μ—μ„œ μ§€μ›λ˜λŠ” κΈ°λŠ₯을 κ°μ§€ν•˜λŠ” JavaScript 라이브러리. Modernizr을 μ‚¬μš©ν•˜μ—¬ νŠΉμ • κΈ°λŠ₯이 μ§€μ›λ˜μ§€ μ•ŠλŠ” κ²½μš°μ— λŒ€λΉ„ν•˜μ—¬ 폴리필을 μ μš©ν•  수 μžˆλ‹€.