How to add loading indicator in Next.js Server Components
- Next.js 서버 컴포넌트에서 로딩 인디케이터를 추가하는 방법은 클라이언트 컴포넌트와 다르며, loading.tsx 파일을 활용하는 것이 일반적임 ⏳
- loading.tsx 파일은 특정 라우트 폴더에 위치하며, 해당 라우트 또는 하위 라우트에서 데이터 로딩 중일 때 표시됨. 파일이 존재하면 Next.js가 자동으로 로딩 인디케이터를 보여줌 📁
- loading.tsx 파일이 상위 라우트에 정의되어 있으면, 하위 라우트에도 적용되므로, 각 라우트에 맞는 로딩 화면을 보여주기 위해 각 폴더에 loading.tsx 파일을 생성해야 함 🗂️
- suspense boundary를 사용하면 특정 컴포넌트가 로딩되는 동안 대체 콘텐츠를 보여줄 수 있으며, 이를 통해 사용자 경험을 향상시킬 수 있음 📦
- suspense를 React에서 임포트하여 컴포넌트를 감싸고, fallback prop을 통해 로딩 중 표시할 내용을 정의함. 이를 통해 개별 컴포넌트 로딩 상태를 관리할 수 있음 ⚙️
- suspense boundary 안에 또 다른 suspense boundary를 중첩하여 사용할 수 있으며, 이를 통해 로딩 순서와 표시 방식을 세밀하게 제어할 수 있음 🧱
- UpCloud는 클라우드 인프라 관리 서비스 제공하며, Next.js 애플리케이션과 연동하여 사용할 수 있는 다양한 서비스를 제공함 (광고) ☁️
- UpCloud의 관리형 데이터베이스는 설정이 빠르고 Next.js 애플리케이션과 잘 연동되며, 서버 및 설정에 대한 걱정 없이 구축에 집중할 수 있도록 지원함 👍
- 로딩 시간이 긴 앱은 사용자 이탈률을 높일 수 있으므로, 로딩 인디케이터를 적절히 활용하여 앱의 사용자 경험을 개선하는 것이 중요함 🚀