피드로 돌아가기
Dev.toFrontend
원문 읽기
중복 데이터와 누락 없는 무한 스크롤을 위한 Pagination 전략 선택
Page Numbers Lie: Offset vs Cursor Pagination
AI 요약
Context
대량의 데이터를 청크 단위로 반환하는 Pagination 구현 필요성 대두. Offset 기반 방식은 데이터 변경 시 항목 누락이나 중복 노출 발생하는 구조적 한계 존재. 실시간 데이터 업데이트가 빈번한 환경에서 사용자 경험 저하 문제 발생.
Technical Solution
- 위치 기반의 Offset 방식 대신 특정 항목의 포인터를 사용하는 Cursor 기반 설계 도입
- 서버가 결과와 함께 다음 페이지의 시작점이 될 Cursor를 함께 반환하는 데이터 흐름 구축
- 클라이언트가 요청 시 이전 Cursor를 전달하여 해당 항목 이후의 데이터만 조회하는 방식 적용
- 데이터 삽입 시 index 밀림 현상 없이 고유 식별자를 기준으로 조회하여 데이터 일관성 확보
- 정적 데이터나 페이지 직접 이동이 필요한 경우 단순한 Offset 방식 유지로 구현 복잡도 최적화
- 실시간 피드나 채팅 메시지처럼 데이터 변동이 잦은 경우 Cursor 방식 강제 적용하는 선택 전략 수립
Key Takeaway
Pagination 선택의 핵심 기준은 데이터의 정적 상태 여부와 실시간 변경 가능성임. 위치(Position)가 아닌 식별자(Identifier) 중심의 데이터 페칭 설계가 상태 변경에 강건한 시스템을 구축하는 원칙임.
실천 포인트
사용자 스크롤 중 상단에 새 데이터가 추가되는 실시간 피드 구조라면 반드시 Cursor Pagination을 적용할 것