Next.js

로딩 UI 구현하기

현대 웹 애플리케이션에서는 데이터 로딩이나 비동기 작업이 발생하는 동안 사용자가 대기 상태를 인지해야 화면이 멈춘 것이 아닌 데이터 로딩 중임을 알 수 있습니다. 아무런 반응이 없는 화면은 혼란과 불편함을 줄 수 있고, 이는 애플리케이션 이탈로 이어질 수 있습니다.

데이터 대기 시간과 라우트 전환 범위를 기준으로 loading.js와 스켈레톤 UI 적용 기준을 정리합니다.

로딩 UI 표시 흐름

1

loading.tsx 역할

사용자가 페이지에 접속하거나 특정 작업을 수행할 때, 백엔드에서 데이터를 가져오는 데는 시간이 소요될 수 있습니다.

2

loading.tsx 구현 실습

목록과 상세 페이지에 loading.tsx를 추가해 데이터 로딩 중에도 사용자에게 즉시 피드백을 렌더링합니다.

3

로딩 UI의 작동 원리: Suspense와 스트리밍

Next.js의 loading.tsx는 내부적으로 React의 Suspense 컴포넌트를 사용하여 구현됩니다.

4

로딩 UI의 적용 범위

loading.tsx 파일은 자신이 위치한 라우트 세그먼트와 그 하위의 모든 라우트 세그먼트에 적용됩니다.