티스토리 뷰
JavaScript 역사의 산증인, jQuery가 첫 공개(2006년 1월 14일) 이후 정확히 20년이 되는 해에 새로운 메이저 버전인 jQuery 4.0.0을 출시했습니다. 10년 만에 이루어진 이번 메이저 업데이트는 과거의 유산을 걷어내고 현대적인 웹 환경에 맞게 체질을 개선하는 데 집중했습니다.
어떤 점들이 바뀌었는지 핵심 내용을 정리해 보겠습니다.
1. 레거시 브라우저와의 작별 (IE 10 이하 지원 중단)
가장 큰 변화 중 하나는 오래된 브라우저들에 대한 지원 종료입니다.
• IE 10 이하 지원 중단: 이제 Internet Explorer 11 미만 버전은 공식 지원하지 않습니다. (IE 11 지원은 이번 버전까지 유지되며, 향후 5.0에서 제거될 예정입니다.)
• 기타 구형 브라우저: Edge Legacy, 구형 iOS, Firefox, Android 브라우저에 대한 지원도 함께 종료되어 코드의 경량화를 이루었습니다.
2. 소스 코드의 현대화: ES 모듈(ESM) 전환
드디어 jQuery 소스 코드가 기존 AMD 방식에서 **ES 모듈(ES Modules)**로 완전히 전환되었습니다.
• 빌드 도구 교체: 기존의 복잡한 방식 대신 Rollup을 사용하여 패키징됩니다.
• 현대적 워크플로우: 이제 최신 빌드 도구 및 브라우저에서 <script type="module">을 통해 더욱 자연스럽게 jQuery를 불러와 사용할 수 있습니다.
3. 보안 강화: Trusted Types 및 CSP 지원
현대 웹 보안 표준인 **콘텐츠 보안 정책(CSP)**과 Trusted Types에 대한 지원이 추가되었습니다.
• 비안전한 문자열 삽입으로 인한 취약점을 방지하기 위해 HTML 조작 메서드들이 개선되었습니다.
• 비동기 스크립트 요청 시 인라인 스크립트 대신 <script> 태그를 우선 사용하여 CSP 오류 발생 가능성을 낮췄습니다.
4. 무거운 과거 청산: 오래된 API 제거
오랫동안 '사용 권장되지 않음(Deprecated)' 상태였던 API들이 대거 삭제되었습니다. 이제는 브라우저 표준 기능을 사용하는 것이 권장됩니다.
• 삭제된 함수: $.isArray, $.trim, $.type, $.parseJSON, $.isNumeric 등
• 대체 방법: Array.isArray(), String.prototype.trim(), JSON.parse() 등 네이티브 JavaScript 함수를 사용하세요.
• 이러한 정리 작업을 통해 전체 파일 크기가 gzipped 기준 약 3KB 이상 줄어들었습니다.
5. 더 가벼워진 '슬림 빌드(Slim Build)'
애니메이션이나 Ajax 기능을 제외한 '슬림 빌드'가 더욱 최적화되었습니다.
• 모든 최신 브라우저가 Native Promise를 지원함에 따라, 슬림 빌드에서는 Deferred와 Callbacks 모듈까지 제거되어 용량이 더욱 가벼워졌습니다. (약 19.5KB gzipped)
6. 이벤트 순서의 표준화 (W3C 준수)
그동안 브라우저마다 제각각이었던 focus, blur 관련 이벤트 발생 순서가 드디어 최신 W3C 명세에 맞게 조정되었습니다. 기존 jQuery 방식과 순서가 달라진 Breaking Change이므로, 이벤트 순서에 의존하는 코드가 있다면 확인이 필요합니다.
다운로드 및 배포
공식 CDN 및 npm에서 다운로드 가능
정식 버전:
https://code.jquery.com/jquery-4.0.0.js
https://code.jquery.com/jquery-4.0.0.min.js
Slim 버전:
https://code.jquery.com/jquery-4.0.0.slim.js
https://code.jquery.com/jquery-4.0.0.slim.min.js
npm 설치 명령: npm install jquery@4.0.0