Bundle Boundary

코드 분할은 필요성, 무게, 실행 위치로 경계를 잡는다

App Router의 기본 분할을 믿되, 무거운 클라이언트 UI는 서버 이동 여부와 동적 로딩을 따로 판단한다.

01

첫 화면 여부

초기 렌더에 반드시 필요하면 지연 로딩보다 서버 렌더와 경량화를 먼저 본다.

02

무거운 의존성

지도, 차트, 에디터처럼 큰 라이브러리는 사용자 행동 뒤로 미룬다.

03

브라우저 전용

window에 의존하면 클라이언트 전용 경계가 필요할 수 있다.

04

서버 이동

상태가 필요 없는 계산과 데이터 준비는 서버 컴포넌트로 옮긴다.

Route Group 화면 묶음별 분리

관리자 영역과 공개 페이지처럼 여정이 다를 때 URL 변경 없이 묶음을 나눈다.

next/dynamic 상호작용 이후 필요한 UI

fallback UI와 로딩 시점을 같이 설계해야 체감 지연이 자연스럽다.

Server Boundary 브라우저 JS 자체를 줄이는 경계

렌더링과 데이터 준비를 서버에 두면 hydration 대상이 줄어든다.

분석 먼저

bundle analyzer로 큰 모듈을 확인한 뒤 분할 대상을 정한다.

대기 UI

늦게 불러오는 영역은 높이를 예약해 레이아웃 흔들림을 막는다.

효과 비교

적용 전후 초기 JS, LCP, 상호작용 지연을 함께 비교한다.