2026-03-19

코드 스플리팅 & Lazy Loading

코드 스플리팅이란?

하나의 큰 JS 번들을 여러 개의 작은 파일로 나누어 필요한 시점에만 로드하는 기법

보통 SPA는 모든 코드가 하나의 큰 번들로 묶인다.

  • 초기 로딩 느림
  • 사용하지 않는 코드까지 다 다운로드

⇒ 해결: 필요한 시점에만 로드

왜 필요한가?

스플리팅 안 하면

  • main.js가 2MB
  • 첫 접속 시 전부 다운로드

스플리팅 하면

  • 홈 화면 코드만 먼저 로드
  • 다른 페이지는 이동 시 로드

코드 스플리팅 목적

⇒ 초기 로딩 속도 개선

⇒ 번들 크기 감소

⇒ 필요 없는 코드 미리 로딩 방지

Lazy Loading (지연 로딩)

  • 지금 당장 필요하지 않은 리소스를 나중에 로드하는 것
  • 필요한 순간에 코드를 실제로 불러오는 방식

React에서 코드 스플리팅 방법

  • React.lazy

    import React, { Suspense } from "react";
    
    const Dashboard = React.lazy(() => import("./Dashboard"));
    
    function App() {
      return (
        <Suspense fallback={<div>Loading...</div>}>
          <Dashboard />
        </Suspense>
      );
    }
    
  • Suspense로 감싸기

    <Suspense fallback={<div>Loading...</div>}>
      <Dashboard />
    </Suspense>
    

⇒ import()가 동적으로 실행됨

장점과 단점

장점:

  • 초기 로딩 속도 개선
  • 번들 크기 감소
  • 사용자 경험 향상

단점:

  • 네트워크 요청 증가
  • 잘못 설계하면 오히려 느려질 수 있음

참고자료

  • https://velog.io/@s_sangs/%EC%BD%94%EB%93%9C-%EC%8A%A4%ED%94%8C%EB%A6%AC%ED%8C%85-Code-Splitting
  • https://yooneeee.tistory.com/104
  • https://yeeeon.tistory.com/59

results matching ""

    No results matching ""