search flow

검색은 입력값, URL, 서버 쿼리, 페이지네이션이 같은 값을 공유해야 한다

검색어를 state에만 두면 새로고침과 페이지 이동에서 깨진다. URL query를 기준으로 서버 컴포넌트가 같은 조건을 다시 계산해야 한다.

1

input

SearchInput이 사용자의 검색어를 받는다.

2

debounce

0.5초 지연으로 불필요한 라우팅을 줄인다.

3

URL

?query=... 값을 기준 상태로 둔다.

4

DB query

title/author regex 조건으로 count와 find를 같은 조건에 적용한다.

5

pagination

페이지 링크가 query를 유지해 결과 범위가 흔들리지 않게 한다.

핵심 검토

검색 결과 수, 현재 페이지, 페이지 링크가 모두 같은 searchCondition에서 나온다면 검색 기능의 상태 기준이 맞다.