Internet Explorer의 끝

Internet Explorer 지원 종료가 Maersk.com의 고객과 개발자에게 미치는 영향

steveworkman
steveworkman

저는 Maersk.com의 수석 엔지니어인 스티브 워크먼입니다. Maersk는 통합 공급망 물류의 글로벌 리더로서 118년 동안 고객이 전 세계로 상품을 운송하는 것을 도와 왔으며, 20년 넘게 온라인 예약 서비스를 제공하고 있습니다. 2022년 5월 초, @Maersk는 Microsoft가 2022년 6월에 IE 지원을 공식적으로 종료함에 따라 고객 대상 시스템에서 Internet Explorer(IE) 지원을 공식적으로 중단했습니다. 웹의 중요한 시대가 끝나고 새로운 시대가 시작됩니다.

2018년에 Maersk에 합류했으며 첫 번째 프로젝트는 새로운 글로벌 탐색 메뉴를 만드는 것이었습니다. 완전히 테스트 가능하고, 다운타임 없이 전 세계에 쉽게 배포 및 업데이트할 수 있으며, 모바일 우선, 반응형, 여러 브랜드를 지원하고, 구성 가능하며, 11개 언어로 현지화되고, IE9를 지원해야 했습니다.

통계 카운터에 따르면 2018년에도 Windows 7과 기본 브라우저인 IE9은 여전히 큰 인기를 끌었고, Windows 10 및 IE11은 2020년 초에만 임계치에 도달했습니다. 데이터를 살펴본 결과, IE9 또는 더 나쁜 경우 호환성 모드의 IE11을 사용하는 고객으로부터 상당한 양의 거래가 발생하는 것으로 확인되었습니다. 이 트래픽은 신흥 시장과 Maersk의 고객층이 빠르게 성장하는 지역으로 크게 기울어져 있었습니다.

탐색 메뉴가 작동하지 않으면 로그인 버튼을 찾기 어렵습니다. 로그인이 작동하지 않으면 컨테이너를 예약할 수 없게 되며, 기존 브라우저로 인해 갑자기 큰 문제가 발생합니다.

이 문제를 해결하기 위해 탐색 구성요소와 향후 모든 웹 앱을 점진적으로 개선하는 입장을 취했습니다. 이를 '작동'하도록 할 수는 있지만 이를 위해서는 상당한 폴리필 및 제한사항이 있을 수 있습니다. 예를 들어 IE는 Fetch API를 지원하지 않지만 이러한 브라우저에는 IE10으로 돌아가는 폴리필이 있습니다. IE9의 경우 fetch가 폴리필될 수 없는 경우에만 로드되도록 별도의 파일에 XMLHttpRequest 호출을 코딩했습니다.

IE9 지원을 중단할 때는 소수의 고객만 남아 있었기 때문에 애플리케이션에서 이 코드를 간단히 삭제할 수 있었으며, 최소한의 노력으로 최신 브라우저 사용자에게 최대의 이점을 제공할 수 있었습니다.

Maersk의 디지털 혁신이 계속됨에 따라 사이트의 많은 부분을 VueJS 기반 마이크로 프런트엔드로 다시 빌드했습니다. Vue는 고급 트리 셰이킹 및 번들 최적화를 위한 훌륭한 사전 설정 구성부터 두 가지 버전의 애플리케이션이 빌드되는 최신 모드(하나는 상시 실행 브라우저용 최신 ES 모듈 문법을 사용하는 버전, 하나는 ES6 모듈을 이해하지 못하는 기존 애플리케이션용 버전)에 이르기까지 미래지향적인 많은 기능을 갖추고 있습니다. 이 기존 버전은 IE와 같은 브라우저에 제공되며, 브라우저에 누락된 기능의 양에 따라 gzipped polyfill 번들의 크기가 100KB 더 클 때가 많습니다.

Microsoft가 IE10에서 사양을 시작했기 때문에 CSS 그리드와 같은 최신 CSS 레이아웃 기법 대부분을 사용할 수도 있었습니다. autoprefixer이 CSS Tricks 도움말을 사용하여 페이지의 다양한 영역에 이름을 지정하는 방법을 숙달한 결과, 가볍고 모든 프로젝트에 적합하며 매우 유연한 레이아웃 시스템을 갖추게 되었습니다. 하지만 해결하는 데 많은 시간이 걸리는 호환성 문제가 있었습니다.

갑자기 비용-편익 분석 단계로 돌아왔지만 이번에는 모든 버전의 IE에 대해 IE9와 마찬가지로 모든 사용자를 지원하는 것과 각 프로젝트에 수주에 걸친 고통스러운 개발 시간을 들이는 것 사이에서 절충해야 합니다. 최신 브라우저를 사용하면 고객에게 더 나은 환경을 제공할 수 있다고 확신한 Google은 사용자가 웹사이트를 방문할 때 IE를 사용하지 않도록 유도했습니다. Google과의 상호작용 시 IE를 여는 습관이 있는 활성 고객의 경우 소수에 한해 이 방법이 효과적임이 확인되었습니다. 이 메시지는 좋았지만 수학을 적용하기에 충분하지는 않았습니다.

IE에서 발생하는 방문이 줄어들면서 Maersk는 이전의 많은 기업을 따라 IE에 대한 공식 지원을 중단하기로 결정했습니다. 하지만 여전히 수치상으로는 IE를 지원해야 한다고 말합니다. 왜 지금인가요?

가로 방향 탐색 메뉴가 있는 웹사이트
글로벌 탐색 구성요소가 있는 Maersk 홈페이지

간단히 말해 웹 플랫폼이 발전했으며 IE11은 소수의 폴리필을 사용해도 필요한 작업을 실행할 수 없습니다. 탐색 구성요소를 살펴보겠습니다. 최신 웹 플랫폼에서는 탐색 구성요소를 하나의 구성요소로 제어하도록 CSS 변수와 컨테이너 쿼리에 의해 제어되는 자체 캡슐화된 스타일이 있는 맞춤 요소입니다. 이러한 플랫폼 부분이 없으면 이러한 구성요소의 스타일이 애플리케이션에서 완전히 변경될 수 있으며 스타일이 다른 구성요소로 유출되거나 애플리케이션으로 다시 유출될 수 있습니다. 맞춤 요소, ShadyCSS, ShadyDOM, 템플릿 요소를 비롯한 대부분의 기능을 에뮬레이션할 수 있는 폴리필이 있습니다.

실제로 이러한 폴리필은 격리된 구성 요소에 잘 작동하지만, 복잡한 애플리케이션에서 여러 구성 요소를 결합할 때 IE는 수십 초의 흰색 화면으로 중단되며 JavaScript 런타임은 40초 동안 스타일 트리를 계산하려고 시도합니다. 즉, 브라우저를 지원하기 위해 사용자 환경이 심각하게 손상되었습니다.

이전에는 첫 번째 페인트에 0.5초 정도 추가할 수 있는 폴리필과 같은 작은 중단이 있었지만 그 이상은 아니었습니다. 이번에는 다르게 적용되어 이러한 앱을 사용할 수 없게 되었습니다. Polyfill은 최신 웹 플랫폼의 복잡성으로 인해 어려움을 겪는 경우에만 많은 작업을 수행할 수 있습니다.

IE 지원을 중단한 이후에 어떤 일이 있었는지 알고 계신가요? 전혀, 거의 없습니다. 고객 지원 티켓이 급증하거나 부정적인 의견이 접수되지 않았습니다. 엔지니어의 만족도가 높아졌고 애플리케이션에 Vue 3(프록시 객체를 폴리필할 수 없으므로 IE11을 지원하지 않음)으로의 업그레이드 경로와 더 작은 번들 크기가 생겼습니다. CSS 변수와 가변 글꼴이 완벽하게 지원되어 브랜드 전반에서 더 간단하게 테마를 설정할 수 있으며, Vue의 단일 파일 구성요소 내에서 토큰을 사용할 수 있는 기능도 인지 복잡성이 감소하여 개발자 환경이 개선됩니다.

고객 관점에서 보면 IE 사용량은 계속해서 서서히 감소하고 있습니다. IE는 사이트에서 차단되지는 않았지만, 점진적인 기능 개선이 단계적으로 중단되어 기능 및 응용 프로그램의 작동이 중지됩니다. 고객은 Google의 기술 발전 덕분에 더 나은 사이트 환경을 누릴 수 있습니다. 권장사항, 접근성, 디자인이 진화하는 Lit 기반 디자인 시스템에 통합되어 현재 또는 향후의 모든 프레임워크와 완벽하게 상호 운용할 수 있기 때문입니다.

야간에 선박 시스템을 더 쉽게 사용할 수 있도록 어두운 모드를 활용하는 것부터 웹 앱이 어떤 조건에서도 주변의 실제 세계와 상호작용할 수 있도록 웹 블루투스, WebXR, PWA를 사용하는 것까지 새로운 웹 플랫폼 기능이 회사 내에서 어떻게 사용될지 기대됩니다. Internet Explorer, 그동안 수고해 주셔서 감사합니다. 이제 웹 플랫폼을 따라잡을 수 있게 되었습니다.