프론트엔드
Apollo Client Pagination Fetching Guide
두줄요약
Apollo Client 무한스크롤을 `refetch`에서 `fetchMore`로 바꾸는 리팩토링 과정을 정리했습니다. 캐시 정책과 첫 페이지 예외 처리까지 함께 맞춰 페이징 문제를 해결했습니다.
핵심 내용
- Apollo Client의 기존 무한스크롤 페이징을
refetch기반에서fetchMore기반으로 리팩토링한 과정 useIntersectionObserver로 페이지 증가를 감지하고,updateQuery에서 기존 목록과 신규 응답의edges를 머지하는 방식fetchMore사용 시cache-and-network설정과 첫 페이지에서는 추가 호출을 막는 조건 분기 필요성totalCount가 작을 때 발생한 초기 빈 리스트 문제와pageNumber === 1예외 처리로 해결한 경험
적용해볼 점
- Apollo 무한스크롤에서
refetch보다fetchMore+updateQuery조합 검토 - 페이징 cursor 계산과 캐시 정책을 함께 점검
- 첫 요청과 추가 요청의 실행 타이밍 충돌 방지
