revalidate 질문
안녕하세요 선생님
강의 내용중에 revalite 의 방식이
두가지가 있다고 하셨고 그중 하나인
time 방식은 예를들어 10초로 설정하였다면
10초후에 누군가가 요청을하면
첫번째 요청자는 이전 값을 받고
두번째 요청하였을때 새로운 값을 받는거라고 이해하였습니다.
그렇다면 게시판에 적용하였을때
A유저가 새글을 작성하고
다시 게시글 목록페이지로 돌아가면
1번째 요청이 되기때문에 새글이 보이지 않고
새로고침을하면 2번째 요청이 되어서
보이게 되는 걸까요?
그리고 위의 내용이 맞다면
작성후 목록 페이지로 갔을때
본인이 작성했던 새 글이 바로 보이려면
어떻게 해야할까요?
온디맨드도 요청이 있을때
일단 먼저 값을 보여주고
그 다음부터 새 값을 보여주는거니 이건 아닌것같고..
강의 보다가 좋은 방법이 있는지 궁금하네요 ^^
P.S : 정말 알차고 좋은강의 감사드립니다 선생님!
볼때마다 너무 만족스러운 강의예요!
Answer 1
0
안녕하세요! 단순 예제를 넘어 실제적인 질문 남겨주시니 정말 기쁩니다!
우선 한 가지 짚고 넘어가겠습니다. 예제에서 사용하는 캐싱 데이터는 여러 사람이 공유하지 않기 때문에 A 유저가 재검증을 했다고 해서 B 유저에게 영향을 주지 않습니다. A 유저가 보고 있는 화면과 B 유저가 보고 있는 화면이 다를 수 있는 이유입니다.
이제 한 사람의 유저가 새로운 게시글을 작성한 뒤에 게시글 목록으로 돌아온 상황에 대해 이야기해볼게요.
말씀 주신 것처럼 시간 기반 재검증 전략은 이미 유효하지 않은(stale) 데이터라고 할지라도 최초의 1회는 이전 데이터를 내려줍니다. 그리고 그 사이에 데이터를 교체하고 2회부터 신선한 데이터를 내려줍니다.

남겨 주신 것처럼 목록으로 왔을 때 막 작성한 글이 포함된 최신의 목록을 조회하기 위해 온디맨드 재검증을 이용하더라도 문제가 해결되진 않을거에요. 또 다른 캐시 때문이죠.
브라우저 레벨에 존재하는 라우터 캐시인데요. 이를 해결하기 위해선 라우터 캐시 역시 신선한 데이터로 바꿔줘야 합니다. 서버 액션(Server Action)을 이용한 재검증 혹은 useRouter의 router.refresh 함수를 이용하는 방법입니다. 자세한 내용은 아래에 남겨둔 가이드를 통해 확인해보시면 좋을 것 같습니다.
참고: https://nextjs.org/docs/app/building-your-application/caching#invalidation-1
질문이 답변이 되었으면 좋겠네요!
이해가 어려운 부분이 있다면 언제든 질문 주세요. 감사합니다.
안녕하세요! 서비스 배포를 하는데 에러가 생겨서 문의드립니다!
1
544
1
안녕하세요 generateStaticParams 관해서 질문
0
366
2
next/image에 대한 질문
1
266
1
데이터 재검증 방법
1
277
2
next.js 에서 서버 컴포넌트 비중을 늘리는 이유
1
346
1
route.ts에 async 키워드가 필요한가요?
1
191
1
import 절대경로 설정 방법 질문 드립니다!
0
306
1
VSCode 확장프로그램은 어떤 것을 사용하셨나요?
0
338
1
환경변수 오류
1
243
1
하이드레이션 질문 드립니다
2
318
2
프론트엔드가 Next를 이용하여 API 만드는 이유가 궁금합니다~!
3
735
1
generateStaticParams에 대하여 질문 드립니다~!
2
867
1
선생님 혹시 Next.js 13에서의 React-query는 어떻게 생각하실까요?
2
1947
3
클라이언트 컴포넌트는 SSG? SSR?
2
859
2
SSR과 RSC의 차이점에 관하여 질문이 있습니다.
1
1290
1
nextjs의 14버전에서 data fetch
1
1422
1
비동기 호출, fetch, 라우트 핸들러 관련 질문입니다.
1
427
1
섹션3. 날씨 재검증하기 NextRequest 질문입니다.
1
338
1
메타데이터 관련 질문
0
215
1
비동기 호출 관련 질문있습니다!
2
327
1
Revalidate 부분 질문
0
345
1
서버 컴포넌트 관련 질문입니다!
3
1692
5
Data Fetching 관련 질문 있습니다~
2
522
1
useRouter 를 import 할때 next/router만 뜨는 경우
0
612
2

