해결된 질문
작성
·
64
0
안녕하세요.
지금까지 알려주신 내용에서 Notion 통해 글을 추가/삭제했을 때, 그에 대한 반영이 이루어지기 위해 unstable_cache 적용 시 revalidate 옵션(단위: s(초))을 줘야 하는 것을 확인했습니다.
(getPublishedPosts 구현부분에서 언급되지 않은부분이라 강의내용과 공식문서 토대로 동작 확인했습니다.)
Notion이 아닌 실제 페이지에서 글쓰기를 했을 때는 revalidateTag 함수를 호출하여 캐시를 무효화시켰었습니다. 문제는 목록 가져올때도 매번 revalidateTag 함수를 사용하게 된다면 캐시 사용하는게 무의미해질거라 생각합니다.
즉시 반영을 위해서는 Webhook 연동이 필요해보이나, 생각보다 구현 난이도가 복잡해서 revalidate를 적절하게 주는게 좋을거라 생각했습니다.
그렇다면 효율적인 revalidate 값은 어느정도로 지정하는게 좋을까요?? TanStack Query ClientProvider에서 지정한 것처럼 1분 정도가 적절하려나요??
그리고 실제 구현 이루어지는 프로그램(ex. 쇼핑몰)에 따라 기준이 달라질 것 같은데요. 이에 대한 강사님 의견 듣고싶습니다.
답변 2
1
서비스 특성에 따라 달라지는 것 같습니다.
일반적인 가이드라인:
개인 블로그: 5-10분 (300-600초) - 글 발행 빈도가 낮아서
쇼핑몰 상품: 1-5분 - 재고/가격 변동 빈도에 따라
고려사항:
글 작성 빈도 (일주일에 1-2개면 10분도 괜찮을 것 같고)
사용자 기대치 (즉시 반영을 원하는지
서버 부하 (Notion API 호출 비용)
우선 revalidate 값은 초기에 원하는 값으로 설정하시고 유지를 하며 최적의 값으로 변경하시면 될 것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. nmnnhlba님.
고객이 실시간으로 변경된 데이터를 얼마나 빠르게 받아보길 원하는지에 따라 revalidate
값을 설정하는 것은 매우 중요합니다. 많은 경우, 사용자 경험을 어떻게 디자인하느냐에 따라 적절한 revalidate
값이 달라질 수 있습니다. 일반적인 권장사항으로는 데이터의 성격에 따라 다르게 설정할 수 있습니다.
예를 들어:
쇼핑몰: 새로운 제품 등록, 가격 변경 등이 수시로 일어날 수 있으니, 짧은 주기를 설정하여 캐시를 자주 갱신하는 것이 좋습니다. 그러나 과도한 캐시 갱신은 서버 부하를 유발할 수 있으므로 균형을 맞추는 것이 중요합니다.
블로그: 일반적으로 큰 업데이트가 필요하지 않으며, 주기적으로 변경되더라도 사용자에게 영향이 적은 경우가 많습니다. 다만, 업데이트가 중요한 글(예: 할인정보, 이벤트 등)은 더 짧게 설정할 수 있습니다.
Webhook 사용에 대한 고려:
- Webhook과 같은 실시간 갱신 방법은 데이터를 즉시 반영하는 데 유용하지만 구현이 복잡할 수 있습니다. 만약 성능과 최신성 모두 중요하다면, Webhook을 통해 핵심 데이터는 즉시 갱신하며 나머지는 revalidate
주기를 통해 관리하는 하이브리드 방식도 고려해볼 수 있습니다.
관련 정보를 이해하는 데 도움이 될 수 있는 링크도 참고해 보세요:
- 서버/클라이언트 컴포넌트에 대한 질문과 답변
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.