Fetch
자동으로 memoize 기능이 있다.
Router handlers는 memoize 기능이 없다.
server action의 경우 기본적으로 캐시는 제공되지 않는다.(no-cached)
Revalidating Data
시간 간격을 지정하여 새로운 데이터를 패칭하는 경우 next.revalidate 옵션을 사용한다.
Segment Config Options로 모든 캐시를 한번에 갱신할 수도 있다.
tags로 태그를 지정하여 revalidateTag를 불러 태그에 연결된 모든 항목을 갱신할 수 있다. (On-demand revalidation)
데이터가 갱신되는 동안 오류가 발생하면 이전 데이터를 계속 캐시로 저장하고 있다.
fetch를 제공하지 않는 라이브러리
Route Segment Config Option와 리엑트의 cache 함수로 캐싱 또는 갱신할 수 있다.
세그먼트가 정적(기본값)인 경우 요청의 출력은 캐시되고 경로 세그먼트의 일부로 갱산된다.
세그먼트가 동적인 경우 요청의 출력은 캐시되지 않으며 세그먼트가 렌더링될 때 모든 요청에서 다시 가져온다.
라우트 핸들러는 서버에서 실행되어 데이터를 클라이언트에 반환한다.
민감한 데이터를 다루는데 적합하다.
'Next.js' 카테고리의 다른 글
[Next.js] Client Rendering (0) | 2024.06.18 |
---|---|
[Next.js] Server Components (0) | 2024.06.18 |
[Next.js] Middleware (0) | 2024.05.23 |
[Next.js] Intercepting Routes (0) | 2024.05.22 |
[Next.js] Parallel Routes (0) | 2024.05.22 |