코드 분할 + 스켈레톤 UI로 초기 로딩 개선
React SPA에서 초기 번들 크기가 UX의 가장 큰 걸림돌이었습니다. 저는 React.lazy()와 Suspense로 라우트 단위 코드 분할을 적용해 초기 번들을 40% 줄였습니다. 데이터 로딩 중 빈 화면 대신 스켈레톤 UI를 보여주니 사용자 이탈률이 눈에 띄게 감소했습니다. 상태 관리는 Zustand로 전환해 불필요한 리렌더링을 줄이고, 자주 변하지 않는 데이터는 React Query의 staleTime으로 캐시를 유지했습니다. 사용자 피드백은 Hotjar 히트맵으로 수집해 실제 클릭 패턴 기반으로 레이아웃을 조정했습니다. 이 개선 후 Core Web Vitals LCP가 4.2초에서 1.8초로 단축됐고, 사용자 만족도 점수도 분기 비교에서 유의미하게 향상됐습니다.