학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 148 · 실전 면접 답변

번들 크기를 줄이려면 무엇부터 확인하고 개선하나요?

이렇게 답해 보세요 (핵심 답변)

가장 먼저 번들 분석 도구(webpack-bundle-analyzer 등)로 프로덕션 빌드 산출물을 시각화해, 어떤 라이브러리와 모듈이 실제로 큰 비중을 차지하는지 확인합니다. 그다음 초기 진입에 당장 필요 없는 라우트나 무거운 모달·차트 컴포넌트를 React.lazy와 동적 import()로 코드 분할(Code Splitting)하고, Tree Shaking이 잘 동작하도록 모듈 import 방식과 거대 라이브러리(예: 전체 로케일·아이콘 묶음)를 정리합니다. 아울러 네트워크 전송 크기를 줄이는 Gzip/Brotli 압축과 브라우저가 파싱·실행해야 하는 실제 압축 해제 JS 크기를 함께 확인해 초기 로딩 지연을 줄입니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 추측으로 작은 유틸리티 코드를 고치기보다 번들 분석기로 가장 큰 의존성 한두 개를 찾고 분할·대체하는 것이 훨씬 효과적입니다.
  2. 코드를 너무 잘게만 쪼개면 페이지 이동 시 네트워크 요청 수와 순차 로딩(Waterfall) 지연이 늘어날 수 있으므로 라우트와 주요 기능 단위로 균형 있게 나눕니다.

면접에서 자주 하는 실수

원본 소스 코드 줄 수를 줄인 것이나 단순 Gzip 전송 크기만 보고 브라우저의 JS 파싱·실행 비용까지 똑같이 줄었다고 단정해서는 안 됩니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 148번을 바탕으로 질문과 답변을 새로 정리했습니다.

← 프론트엔드 설계