SSG (Static Site Generation)

SSR (Server Side Rendering)

그래서 현재 내가 작성한 코드는 빌드타임에만 생성될 것이고, Daily 정보를 받아야 하는 시점에 이전에 생성했던 HTML을 재사용 하게 될 것이다.

src/app/page.tsx

import { dehydrate, HydrationBoundary } from "@tanstack/react-query";

import { Header } from "@/shared/components";
import { DailyFewHeader, DailyFewSection } from "@/shared/widgets";

import { getGroupsOptions, getCategoriesOptions } from "@/shared/remotes";
import { getQueryClient } from "@/api/client/queryClient";
import { formatDateToYYYYMMDD } from "@/shared/utils";

export default async function Home() {
  const today = formatDateToYYYYMMDD(new Date());
  const queryClient = getQueryClient();

  const categoriesResponse = await queryClient.fetchQuery(
    getCategoriesOptions(),
  );
  const groupsResponse = await queryClient.fetchQuery(getGroupsOptions(today));
  const categoriesData = categoriesResponse.data;
  const groupsData = groupsResponse.data.groups;

  return (
    <HydrationBoundary state={dehydrate(queryClient)}>
      <Header />
      <div className="m-auto max-w-1200">
        <main className="px-16">
          <DailyFewHeader />
          <section className="flex w-full flex-col gap-24 overflow-hidden md:flex-row">
            <DailyFewSection news={groupsData} categories={categoriesData} />
          </section>
        </main>
      </div>
    </HydrationBoundary>
  );
}

이를 해결하기 위해 해당 페이지를 SSR로 생성하게끔 하거나, ISR로 주기적으로 빌드하도록 해야 한다.