그래서 현재 내가 작성한 코드는 빌드타임에만 생성될 것이고, 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로 주기적으로 빌드하도록 해야 한다.