6P by neo with xguru 7달전 | favorite | 댓글 3개
  • 웹에서 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 입니다.
인공지능 관련 협회 사이트를 보면 압니다. 왜냐고요? 그걸 사용하는 업체가 제일 싸니까요.

jQuery를 업그레이드하고 보안 문제를 해결하지 않으면
--> jQuery를 업그레이드하지 않거나 보안 문제를 해결하지 않으면