GN⁺: jQuery 업그레이드: 건강한 웹을 위한 노력
(blog.jquery.com)- 웹에서 jQuery의 영향력은 분명함
- 2006년 처음 소개된 이후 웹 개발자들에게 즉시 기본 도구가 됨
- HTML 문서 조작, 이벤트 처리, 애니메이션 등을 단순화함
- 웹 표준과 브라우저 기능의 발전에 지속적으로 큰 역할을 함
- 최신 JavaScript 프레임워크의 등장으로 새 프로젝트에 jQuery를 선택하는 개발자는 줄어들었지만, 전 세계적으로 사용량은 여전히 매우 높음
- IDC 설문조사 결과 분석에 따르면 전체 웹사이트의 90%가 jQuery를 사용함
- 그 중 약 1/3이 오래된 버전을 사용함
- jQuery 팀과 OpenJS 재단은 Healthy Web checkup 캠페인의 일환으로 이를 해결하기 위해 노력하고 있음
- 이 가이드는 jQuery 버전을 최신으로 유지하는 것이 중요한 이유를 설명하고 업그레이드 과정을 안내함
보안을 위해 jQuery 업그레이드가 중요한 이유
- 보안 취약점
- jQuery 코드베이스에 XSS부터 RCE까지 다양한 취약점이 있을 수 있음
- 발견되는 대로 jQuery 팀은 패치와 업데이트를 제공함
- 최신 버전으로 업그레이드하면 이러한 보안 수정 사항이 적용되어 공격자의 악용 위험이 줄어듦
- 보안 모범 사례
- 새로운 jQuery 버전은 일반적인 보안 위협을 완화하기 위한 보안 모범 사례와 개선 사항을 통합함
- 업그레이드하면 이러한 모범 사례를 채택하고 애플리케이션의 보안 태세를 강화할 수 있음
- 규정 준수 요구 사항
- 많은 산업 및 규제 프레임워크에서는 최신 소프트웨어를 유지하고 알려진 보안 취약점을 신속히 해결할 것을 요구함
- jQuery를 업그레이드하여 보안 문제를 해결하지 않으면 이러한 요구 사항을 준수하지 못할 수 있음
브라우저 지원
- jQuery 1.x, 2.x, 3.x는 각각 지원되는 브라우저 목록이 다름
- 그러나 현재 브라우저 시장 사용량을 고려할 때 IE 9+ 등 jQuery 3.x가 지원하는 브라우저로 거의 모든 경우에 충분함
- jQuery 4.x는 MS가 공식 지원 종료를 발표했음에도 불구하고 IE11을 계속 지원할 예정임
jQuery 업그레이드 방법
- jQuery 팀은 jQuery Migrate 플러그인을 제공하여 jQuery 업그레이드를 최대한 쉽게 만듦
- 브라우저 콘솔에 호환성 문제 식별 및 수정에 사용할 수 있는 경고 메시지를 생성하는 개발 도구임
- 이전 코드가 새 버전의 jQuery에서 계속 실행되도록 하면서 호환성 문제를 해결할 수 있도록 더 이상 사용되지 않는 기능과 동작을 일시적으로 복원함
- jQuery Migrate에는 1.x와 3.x의 두 가지 버전이 있음 (2.x는 없음)
- 한 번에 하나의 버전만 사용해야 함
- jQuery 1.9 이전 버전에서 업그레이드하는 경우 차례로 두 버전을 모두 사용해야 할 수 있음
- 예를 들어 현재 jQuery 버전이 1.4.4인 경우
- 먼저 jQuery Migrate 1.x를 사용하여 jQuery 1.12.4로 업그레이드한 다음
- jQuery Migrate 3.x를 사용하여 최신 jQuery(현재 기준 3.7.1)로 업그레이드 함
- 현재 버전이 2.2.4인 경우 jQuery Migrate 3.x만 사용하여 최신 jQuery로 업그레이드할 수 있음
jQuery Migrate 사용 방법
- 먼저 jQuery 로드 후에 jQuery Migrate를 페이지에 추가함
- 그런 다음 웹사이트나 애플리케이션을 테스트함
- 서로 다른 jQuery API가 사용될 때 jQuery Migrate는 사용되지 않는 내용이나 주요 변경 사항에 대한 경고 메시지를 콘솔에 기록함
- 한 번에 하나씩 각 경고를 해결함
- 마지막으로 더 이상 콘솔에 경고가 기록되지 않고 모든 주요 변경 사항이 해결되면 jQuery Migrate를 제거하고 마이그레이션이 완료됨
- 자세한 내용은 jQuery Migrate README 참조
jQuery 업그레이드 가이드
- jQuery Upgrade Guides는 주요 변경 사항에 대한 자세한 정보를 찾거나 각 버전의 모든 주요 변경 사항 목록을 보려는 경우에 도움이 될 수 있음
- jQuery 1.9, 3.0, 3.5에 대한 업그레이드 가이드에는 해당 릴리스에서 발생한 모든 주요 변경 사항이 나열되어 있음
- 나열된 주요 변경 사항 대부분은 아마도 코드에 적용되지 않겠지만, 이러한 가이드는 각 변경 사항에 대한 맥락과 설명을 추가함
향후 jQuery 버전에 대한 참고 사항
- jQuery 4.0이 다가오고 있어 jQuery 4.x로 업그레이드하는 과정이 어떨지 궁금할 수 있음
- 답변은 jQuery 3.x로 업그레이드하는 것과 동일하며 한 단계로 수행할 수 있음
- 즉, jQuery 4.x로 업그레이드하기 전에 jQuery 3.x로 업그레이드할 필요가 없음
- jQuery 1.9+에서 바로 jQuery 4.x로 업그레이드할 수 있음
- jQuery 4.0에 대한 업그레이드 가이드도 준비할 예정임
GN⁺의 의견
- jQuery는 많은 웹사이트에서 여전히 많이 사용되고 있기 때문에 버전 업그레이드는 웹 개발자들에게 중요한 과제임
- 구버전을 계속 사용할 경우 새로 발견된 취약점에 그대로 노출될 수 있고 성능 문제도 발생할 수 있음
- 하지만 예전 버전의 jQuery를 사용하고 있는 레거시 시스템의 경우 업그레이드에 상당한 시간과 비용이 소모될 수 있음
- 이런 경우 보안 패치만 적용하는 등의 방법으로 리스크를 줄여나가는 것도 방법임
- Migrate 플러그인 등을 활용하면 쉽게 업그레이드할 수 있지만, 호환성 이슈가 생길 가능성은 있음
- 특히 jQuery에 의존도가 높은 legacy 코드라면 더욱 그럴 것임
- 이를 해결하려면 점진적인 마이그레이션이 필요함
- 새로운 프로젝트라면 아예 jQuery에 의존하지 않는 방향으로 설계하는 것이 유리할 수 있음
- Vanilla JS나 최신 프론트엔드 프레임워크를 활용하는 것이 미래 지향적임
- jQuery를 활용해 왔던 개발자라면 이번 기회에 새로운 기술에 도전해보는 것도 자신의 역량 확장에 도움이 될 것임
아직도 대한민국의 대부분 사이트는(특히 공공, 그리고 공기관, 게다가 관공서) 제이쿼리를 무조건 1.x 씁니다.
네? 못믿겠다고요? 그냥 아무 .go.kr 가시고 소스보기 하시면 됩니다.
jQuery 3 쓰는 곳 보기 어려울 겁니다. 만약 안보이고 소스 인식이 어렵다면 그다음 vue 및 react 입니다.
네? 예전 사이트니까요? 아니오. 금년 신설된 기관 홈페이지도 제이쿼리 무조건 1.x 입니다.
인공지능 관련 협회 사이트를 보면 압니다. 왜냐고요? 그걸 사용하는 업체가 제일 싸니까요.