아이폰 성능 환상: 웹 개발자를 위한 냉혹한 현실 점검

2025-01-09

이 글은 모바일 웹 애플리케이션에서 상당한 성능 차이를 보여줍니다. Rum Archive 데이터를 사용하여 저자는 영국 iOS 사용자와 Android 사용자의 웹 페이지 로딩 속도를 비교하여 Android 사용자의 First Contentful Paint (FCP)가 34% 느리고 Time To Interactive (TTI)가 놀랍게도 66% 느리다는 것을 밝혀냈습니다. GeekBench CPU 성능 점수와 Interaction to Next Paint (INP)의 상관관계를 분석하여 저자는 저사양 Android 기기의 INP 시간이 고사양 기기보다 훨씬 길다는 것을 보여주었으며, 오래된 iPhone조차 최신 고사양 Android 기기를 능가합니다. 저자는 방대한 Android 사용자 기반을 무시해서는 안 된다고 강조합니다. 사용자 경험을 간과하면 기회 손실로 이어집니다. 이 글에서는 개발자들에게 사용자 기기의 다양성을 이해하고, RUM 도구를 사용하여 실제 환경에 대한 통찰력을 얻고, 개발 및 테스트 중에 저사양 기기를 시뮬레이션하여 더 포괄적인 웹 애플리케이션을 만들 것을 촉구합니다.

더 보기

긴 작업과의 결별: 웹 성능 향상을 위한 비동기 루프 마스터하기

2025-01-04

본 기사는 메인 스레드의 블로킹을 방지하고 웹 성능을 향상시키기 위한 자바스크립트 루프 최적화에 대해 자세히 설명합니다. 저자는 `for...of` 루프나 `forEach`와 같은 메서드를 큰 배열에 직접 사용하면 긴 작업이 발생하여 사용자 경험이 저하될 수 있다는 점을 지적합니다. 해결책으로는 `scheduler.yield` 또는 `setTimeout(0)`과 `async/await`을 결합하여 긴 작업을 더 작은 작업으로 분할하고 각 반복 후 제어권을 양보하여 응답성을 유지하는 방법이 제시됩니다. 본 기사에서는 응답성과 처리 효율의 균형을 맞추기 위한 배치 처리 및 프레임 속도 최적화 전략에 대해서도 논의합니다. 최종적으로는 최적의 사용자 경험을 얻기 위해 애플리케이션의 구체적인 요구 사항에 따라 적절한 배치 크기 및 전략을 선택할 것을 권장합니다.

더 보기