1. Next.js의 캐싱 매커니즘

[참고문서]

https://fe-developers.kakaoent.com/2024/240418-optimizing-nextjs-cache/

Full Route Cache

웹 서버의 성능을 눈에 띄게 향상시키려면 Full Route Cache를 적용해야 합니다. 서버 렌더링 과정에서 웹 서버의 리소스(특히 CPU)를 대부분 사용하게 되는데, Full Route Cache는 서버 렌더링 결과를 재사용함으로써 이를 줄일 수 있습니다.

image.png

Full Route Cache를 적용하려면 페이지를 Static 렌더링 되도록 구성해야 합니다. 다시 말해 Dynamic Function을 사용하지 않아야 하는데, 그렇지 않으면 그림과 같이 Full Route Cache 단계가 SKIP 됩니다. Full Route Cache를 좀 더 자세히 알고 싶다면 공식문서를 참고하시길 바랍니다.

https://nextjs.org/docs/app/building-your-application/caching#full-route-cache

⇒ 정적 경로의 경우 빌드 시점에 데이터 캐시에 캐시가 되고, 동적 경로는 처음 액세스 할 때 캐시가 됩니다.

1-1 동적 라우팅을 너무 많이 사용하고 있음

정적 및 동적 렌더링

경로가 빌드 시 캐시되는지 여부는 정적 또는 동적으로 렌더링되는지에 따라 달라집니다. 정적 경로는 기본적으로 캐시되는 반면 동적 경로는 요청 시 렌더링되고 캐시되지 않습니다.

→ 동적 페이지의 경우 캐시되지 않으며 정적페이지는 기본 5분 캐시된다.

1-2 서버액션마다 revalidatePath을 붙여 라우터 캐시를 무효화 시키고 있다. +

noStore() 의 사용이 빈번하다.

무효화