빠른 참조

Polyfill.io 대안 및 기능 감지(Feature Detection) 치트 시트

폴리필 로딩 참고 가이드: polyfill.io 공급망 공격 보안 권고, Cloudflare cdnjs 대체 경로, 조건부 스크립트 로딩 및 core-js 번들링 방법.

· 게시일

[!CAUTION] 치명적인 공급망 보안 경고: 기존 polyfill.io 도메인은 제3자에게 인수되어 공급망 악성코드 삽입 공격에 악용되었습니다. 모든 프로덕션 코드베이스에서 polyfill.io 참조를 즉시 제거하세요.

안전한 Cloudflare CDN 대안

Cloudflare와 cdnjs는 검증되고 격리된 폴리필 라이브러리의 즉시 교체 가능한(drop-in) 미러를 호스팅합니다:

<!-- Cloudflare가 제공하는 안전한 즉시 대체 URL -->
<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js"></script>

조건부 기능 로딩

ES6+ API를 기본 지원하는 최신 브라우저에서 불필요한 폴리필 로드를 피하려면 script 태그를 삽입하기 전에 인라인 기능 감지를 사용하세요:

<script>
  if (!(window.Promise && [].includes && Object.assign && window.Map)) {
    var script = document.createElement('script');
    script.src = 'https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js';
    document.head.appendChild(script);
  }
</script>

권장되는 최신 방식: Core-JS 및 번들러 폴리필

최신 프론트엔드 개발에서는 런타임에 외부 스크립트를 로드하는 대신 컴파일 단계(Vite, Webpack, Babel 등)에서 폴리필을 번들링합니다:

npm install core-js

애플리케이션 진입점(index.js)에서:

import 'core-js/stable';

참고 자료

관련 주제