Vibes UI 라이브러리: Vibes는 Shad CN과 유사한 복사-붙여넣기 UI 컴포넌트 라이브러리이지만, React Suspense, 데이터 스트리밍, 로딩 스켈레톤과 같은 Next.js 기능을 지원하여 개발자 경험을 개선하는 데 중점을 둡니다. 🎨
초기 코드 구조: 워크숍에서는 page.tsx(컴포넌트 소비자)와 product list 컴포넌트(UI 컴포넌트 라이브러리) 두 파일을 중심으로 진행됩니다. 뼈대 코드가 제공됩니다. 뼈대 코드는 스타일링이 완료되었고, 인터페이스가 정의되어 있습니다. 뼈대 코드에 기능을 추가하고 개선하는 방식으로 진행됩니다. 뼈대 코드는 정적 데이터를 사용하여 제품 목록을 렌더링합니다. 🧱
React 서버 컴포넌트 및 데이터 스트리밍: React 서버 컴포넌트를 사용하여 서버에서 데이터를 로드하는 방법을 설명하고, 데이터 스트리밍을 통해 초기 로딩 시간을 개선하는 방법을 보여줍니다. 🚀
데이터 로딩 시뮬레이션: setTimeout을 사용하여 2초 지연을 시뮬레이션하고, await를 사용하여 데이터를 기다리는 동안 전체 페이지가 로딩되는 것을 보여줍니다. ⏳
React Suspense를 사용한 스트리밍 구현: React Suspense를 사용하여 정적 마크업을 먼저 보내고, 데이터가 로딩되는 동안 로딩 표시기를 보여주는 방법을 설명합니다. 이를 통해 사용자 경험을 개선하고, 초기 로딩 시간을 단축합니다. 💫
PPR(Partial Prerendering) 소개: 데이터 스트리밍의 한계점을 지적하며, 지리적 위치에 따른 서버 응답 시간 차이를 설명합니다. PPR을 통해 정적 부분을 CDN에 캐싱하여 전 세계 사용자에게 더 빠른 초기 로딩 속도를 제공할 수 있음을 강조합니다. 🌍
PPR의 장점: PPR은 정적 콘텐츠를 CDN에 캐싱하여 사용자에게 더 가까운 위치에서 제공함으로써 초기 로딩 속도를 향상시킵니다. 이는 특히 지리적으로 멀리 떨어진 사용자에게 유용합니다. ⚡