
데이터 페칭 (Data Fetching) : 웹 애플리케이션에서 데이터를 가져오는 프로세스
Next.js는 다양한 방법의 데이터 페칭 방법이 존재
Next.js는 페이지에 필요한 데이터를 효율적으로 가져오는 방법을 선택하고 사용자에게 최상의 경험을 제공하는데 활용할 수 있습니다.
getStaticProps
빌드 시점에 페이지에 필요한 데이터를 불러오는 함수. (주로 정적인 사이트에서 사용)
예시) 제품 목록, FAQ 목록
getStaticPaths
동적 경로를 사용할 때, 필요한 경로의 목록을 동적으로 생성하는 함수입니다. (getStaticProps 함수와 함께 사용)
예시) 블로그 게시물 상세 페이지, 제품 디테일 페이지
getServerSideProps
매 요청마다 서버에서 필요한 데이터를 가져올 수 있게 하는 함수 (항상 최신 데이터 제공, SSR에서 사용)
예시) 검색 결과 페이지
API Routes
Next.js에서 엔드포인트를 생성, 사용하여 데이터를 가져오는 방법 (API 라우트를 통해서 서버와 클라이언트간 데이터를 주고 받을 수 있음)
예시) 데이터 등록, 처리, 로그인
정적 페이지 생성을 위한 데이터를 가져오는 사전 렌더링 함수. 런타임이 아니라, 빌드 타임에서만 실행되기 때문에 변동이 거의 없는 데이터 대상으로만 적용하는게 좋다
export async function getStaticProps() {
const posts = await fetchPosts(); // 데이터 가져오기 함수
return {
props: {
posts,
},
};
}
동적 경로를 위한 정적 경로 생성하는 사전 렌더링 함수.
export async function getStaticPaths() {
const posts = await fetchDynamicPaths(); // 동적 경로 생성 함수
return {
paths,
fallback: false, // 없는 경로는 404 페이지로 처리
};
}
서버 사이드 렌더링을 위한 데이터 가져오기 함수
export async function getServerSideProps() {
const posts = await fetchData(); // 서버에서 데이터 가져오기
return {
props: {
data,
}
};
}