사용자 입력을 키로 둔다
검색어, 필터, 페이지 번호처럼 브라우저에서 바뀌는 상태가 fetch key를 만든다.
오류와 재시도 설계
네트워크 실패, 중복 요청, 빠른 입력 취소를 UI 상태로 표현해야 한다.
SWR/Query
캐시와 재검증
focus revalidate, stale data, retry 같은 클라이언트 경험을
관리한다.
서버 캐시와 역할을 나눈다.
Abort
요청 취소
빠르게 바뀌는 검색어에서 이전 요청 응답이 뒤늦게 덮지 않게
한다.
race condition을 본다.
Optimistic
즉시 반영
mutation 성공을 기다리기 전 UI를 먼저 업데이트한다.
실패 rollback이 필요하다.
Hydration
초기 값 전달
서버에서 받은 데이터를 client cache 초기값으로 넘기면 중복
요청을 줄일 수 있다.
직렬화 가능해야 한다.
초기 화면 · 경쟁 상태 · 실패 점검
역할 분리
// server: initial list
// client: filters, pagination, refetch after mutation