type List = string[];
export default function Page() {
const [list, setList] = useState<List>([]);
const fetchList = async () => {
const res = await fetch("...");
const data = await res.json();
setList(data);
}
useEffect(()=>{
fetchList();
},[])
return <div>...<div>
}
리액트에서 API 엔드포인트에 데이터를 요청할 때의 필수적인 조건은 컴포넌트가 마운트 된 이후에 진행되야 한다는 점입니다.

가뜩이나 초기 로딩이 느린 리액트 앱에서 컴포넌트 마운트 이후에 발생하는 API 요청 방식은 이미 기다렸던 유저를 더 기다리게 해야하는 단점이 있습니다.

이런식으로 유저는 계속 기다려야합니다. 초기 로딩이 1초 느려질 때마다 유저의 이탈률은 기하학적으로 증가하는데 이는 좋은 웹사이트가 아니겠죠.. Next는 이러한 단점을 해결하기위해 사전렌더링 시점에 데이터를 요청하고 응답해줍니다.

Next는 사전렌더링 시점에 백엔드 서버에 데이터를 요청하고 요청한 데이터가 포함된 정적인 HTML을 브라우저에 제공할 수 있습니다.
이러한 구성으로 Next 는 React 보다 뛰어난 사용자 경험을 제공합니다.
사전 렌더링시에 백엔드 서버 상태가 안좋거나 요청하는 데이터가 커서 응답이 느리면 어떡해요?
만약 위와같은 상태라면 유저는 아무런 화면도 볼 수 없게됩니다. 아주 치명적인 문제인데요. 이런 문제를 해결하기위해 SSG 방식을 제공합니다.

프로젝트를 빌드하는 시점에 API 응답 속도에 개선이 필요한 페이지는 SSG 방식을 사용하여 빌드타임에 데이터를 요청할 수 있습니다.
Next.js에서 사전 렌더링(Pre-rendering) 이란,
SSR(Server-Side Rendering)뿐만 아니라 SSG(Static Site Generation)을 포함하는 더 넓은 개념입니다. Next.js는 두 가지 방식으로 사전 렌더링을 지원합니다.
특징: 요청 시점에 서버에서 HTML을 생성하여 최신 데이터를 반영합니다.
특징: 페이지가 미리 생성되므로 매우 빠르고, 요청 시 서버 부담이 없습니다. 그러나 동적인 데이터를 반영하려면 추가적인 방법이 필요합니다.