데이터의 첫 책임을 정한 뒤 client fetch를 붙인다

초기 화면은 서버가 준비하고, 사용자 입력·실시간 변화·브라우저 상태에 반응하는 구간만 클라이언트 요청으로 이어 간다.

첫 렌더에
꼭 필요한가?
YES · server

초기 목록 준비

SEO와 첫 화면에 필요한 값을 서버에서 가져온다. 직렬화 가능한 결과를 client cache의 초기값으로 넘겨 중복 요청을 줄인다.

// server: initial list
NO / 이후 변화 · client

상호작용을 요청 키로

검색어·필터·페이지 번호처럼 브라우저에서 바뀌는 상태가 fetch key를 만든다.

// client: filters, pagination

사용자 입력에서 안전한 UI 반영까지

새 입력이 오면 이전 요청의 영향 범위를 끊는다.
1입력 변경

검색어·필터·페이지가 새 key를 만든다.

2Abort 이전 요청

늦은 응답이 최신 UI를 덮는 race condition을 막는다.

3SWR / Query

stale cache를 먼저 보여주고 refetch·retry·focus revalidate를 관리한다.

4UI commit

최신 결과만 data·loading·error 상태에 반영한다.

Optimisticmutation 성공 전 UI를 먼저 바꾼다.실패 → rollback
Hydration서버 결과를 client cache 초기값으로 연결한다.직렬화 확인
서버 캐시브라우저 경험 캐시와 원본 응답 캐시의 책임을 나눈다.역할 중복 금지

점검첫 화면이 client fetch만 기다리지 않는가 · 오래된 응답이 최신 UI를 덮지 않는가 · 낙관적 업데이트 실패를 되돌릴 수 있는가.