길잃은곰
길을 잃어 떠도는 곰
길잃은곰
전체 방문자
오늘
어제
  • 분류 전체보기 (87)
    • Algorithm (6)
    • HTML, CSS (9)
    • Frontend (1)
    • SW공학 (1)
    • WEB (4)
    • Javascript (29)
    • Typescript (0)
    • React (8)
    • Computer Science (11)
    • NEWS (0)
    • TIL(WIL) (4)
    • ETC (5)

블로그 메뉴

  • ✨깃허브
  • 홈
  • 태그
  • 방명록

인기 글

태그

  • root-element
  • REM
  • 연탄
  • VH
  • JavaScript
  • Pixel
  • 코테
  • EM
  • javascript2016
  • 자바스크립트
  • element
  • ES8
  • js2016
  • Es5
  • VW
  • PX
  • ES7
  • %
  • 코드트리
  • ES6
hELLO · Designed By 정상우.
길잃은곰

길을 잃어 떠도는 곰

[ JavaScript ] Bundle 사이즈 줄이기
Javascript

[ JavaScript ] Bundle 사이즈 줄이기

2023. 1. 18. 02:45

Bundle 사이즈 줄이기

React, Vue, Angular 등의 프레임워크를 사용하면, 번들 사이즈가 커질 수 있습니다.

이를 줄이지 않으면 사용자가 느끼는 페이지 로딩 시간이 길어져 사용자 경험이 떨어질 수 있습니다.

이를 해결하기 위해, 번들 사이즈를 줄이는 방법을 알아봅니다.

Bundle 사이즈를 줄이는 방법

소스 코드 최소화 하기 : minify, uglify

  • minify : 압축하기
    • 불필요한 공백, 줄바꿈, 주석 등을 제거합니다.
  • uglify : 난독화하기
    • 변수명, 함수명 등을 알아보기 어렵게 변경합니다.
    • 이름을 단순화해서 불필요한 데이터를 제거하면서, 외부인이 소스 코드를 읽기 어렵게 만들어 기초적 보안을 제공합니다.

코드 스플리팅 (Code Splitting)

  • React 에서는 React.lazy, Suspense 를 사용하면, 코드 스플리팅을 쉽게 구현할 수 있습니다.
import React, { Suspense } from "react";

const OtherComponent = React.lazy(() => import("./OtherComponent"));

function MyComponent() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <OtherComponent />
      </Suspense>
    </div>
  );
}

Tree Shaking

사용하지 않는 코드를 제거하는 기능

  • 나무를 흔들면, 죽은 잎사귀만 떨어지듯이 사용하는 기능만 {} 부분적으로 import 하는 방식을 의미합니다.

Tree shaking 적용했을때 모습

실제로 프로젝트에서 사용했던 date-fns 라이브러리의 경우, Tree Shaking 을 적용하면 6배 가량의 크기를 줄일 수 있습니다.

 

import * as date from "date-fns"; // 159.6k (gzipped: 27.3k)
import { format, formatDistanceToNow } from "date-fns"; // 26.6k (gzipped: 7.2k)

 

Reference
  • Tree Shaking
  • 자바스크립트 번들 사이즈 줄이기
저작자표시 비영리 동일조건 (새창열림)

'Javascript' 카테고리의 다른 글

[ Javascript ] 객체 지향 프로그래밍이란?  (0) 2023.01.18
[ JavaScript ] 크로스 브라우징  (0) 2023.01.18
SSR, CSR, SSG  (0) 2023.01.17
[ JavaScript ] ESLint, Prettier  (0) 2023.01.17
[ Javascript ] 콜스택과 힙  (0) 2023.01.17
    'Javascript' 카테고리의 다른 글
    • [ Javascript ] 객체 지향 프로그래밍이란?
    • [ JavaScript ] 크로스 브라우징
    • SSR, CSR, SSG
    • [ JavaScript ] ESLint, Prettier
    길잃은곰
    길잃은곰

    티스토리툴바