pile·

SLASH 21 - JavaScript Bundle Diet

토스·토스 SLASH 21 2021·

챕터별 상세

010:00 – 1:47

번들 사이즈는 왜 중요한가 — 문제를 찾는 분석 도구

토스의 클라이언트 플랫폼을 담당하는 프론트엔드 개발자가 자바스크립트 번들 다이어트를 연다. 들어가기에 앞서 번들 사이즈가 왜 중요한지를 로딩 속도와 이탈률 관계로 설명한다. 페이지가 2초 이내에 로딩되면 이탈률이 9% 수준이지만 5초를 넘기면 약 30%까지 크게 늘어, 로딩 속도가 이탈에 직접 영향을 준다. 웹사이트가 느려지는 원인은 다양하지만 이번 발표는 번들 사이즈에 집중하는데, 같은 용량이라도 자바스크립트는 이미지와 달리 다운로드 후 파싱·컴파일 등 여러 단계를 더 거쳐 처리 비용이 훨씬 높기 때문이다.

번들을 줄이려면 먼저 문제를 찾아야 한다. webpack 기준 분석 도구 중 source-map-explorer는 정보가 가장 다양하지만 복잡하고 느리고, webpack-visualizer는 시각화는 깔끔하나 기능이 부족해, 원인을 빠르게 찾기에는 webpack-bundle-analyzer를 추천한다. 용량별로 사각형 크기가 달라 어떤 라이브러리가 많이 차지하는지 한눈에 보이고, 검색·필터링과 직접 쓰지 않지만 번들에 포함된 서드파티 의존 라이브러리까지 찾을 수 있다. 용량이 큰 라이브러리는 더 가벼운 것으로 대체하고, 용도가 겹치는 라이브러리는 하나로 통일하는 것이 번들 다이어트의 시작이다.