[javascript] Next.js에서의 데이터 캐싱 처리 방법은 어떤 것이 있나요?
  1. 정적 생성 (Static Generation) : Next.js는 빌드 시간에 페이지를 미리 생성하여 HTML 파일로 저장합니다. 이후에는 이 HTML 파일을 재사용하여 서버에서 데이터를 로드하지 않고 바로 클라이언트에게 전달합니다. 이렇게 정적 생성된 페이지는 CDN에 캐시되므로 성능이 향상됩니다. 정적 생성을 사용하려면 getStaticProps() 메서드를 사용하고, 데이터를 반환하는 방법을 구현해야 합니다.

  2. 서버 측 렌더링 (Server-side Rendering) : Next.js는 요청이 들어올 때마다 서버에서 페이지를 렌더링하고, 필요한 데이터를 로드하여 클라이언트에게 전달합니다. 이를 통해 항상 최신 데이터를 제공할 수 있으며, 데이터가 자주 변경될 경우에 유용합니다. 서버 측 렌더링을 사용하려면 getServerSideProps() 메서드를 사용하고, 데이터를 반환하는 방법을 구현해야 합니다.

  3. 클라이언트 측 데이터 로딩 : Next.js는 동적으로 데이터를 로드하여 클라이언트에게 전달할 수도 있습니다. 이는 페이지가 로드된 후에 추가 데이터를 필요로 하는 경우 유용합니다. 클라이언트 측 데이터 로딩을 구현하려면 useEffect()와 같은 클라이언트 사이드 라이프사이클 메서드를 사용하여 데이터를 로드하고, 상태에 저장한 뒤 렌더링하는 방식을 사용합니다.

이 외에도 Next.js에서는 SWR과 같은 라이브러리를 사용하여 데이터를 캐싱하고 관리하는 기능을 제공합니다. SWR은 데이터를 자동으로 캐싱하고 서버로부터 변경이 감지되면 자동으로 업데이트하여 화면에 보여줍니다.

참고 자료: