Pagination

shin·2023년 1월 27일
0

Flutter

목록 보기
11/12

Pagination

  • 많은 데이터를 부분적으로 나눠서 불러오는 기술

특징

  • 쿼리에 해당하는 모든 데이터를 한번에 다 불러오지 않고 쪼개서 불러온다.
    • 예를들면 쿠팡에는 수억개의 상품들이 데이터베이스에 저장되어 있는데 만약 사용자가 상품검색 화면에 들어간다고 해서 수억개의 데이터들이 한번에 다 불러오지는 않는다. 필요한 일부만 불러오게 된다.
  • 모든 데이터를 서버에서 클라이언트로 전송할 필요가 없다.
  • 데이터 전송에 비용이 든다. 그렇기 때문에 효율적을 데이터를 보낼 방법을 찾아야한다.
  • 비용이 들지 않는다고 해서 수많은 데이터를 한번에 보내면 메모리에 많은 부담을 줄 수 있다. 만약 메모리에 부담이 되지 않는다고 해도 데이터 전송에 오랜 시간이 걸릴 수 있다.

Page Based Pagination

  • 페이지 기준으로 데이터를 잘라서 요청하는 방식
  • 요청을 보낼때 원하는 데이터 갯수와 몇번째 페이지를 가져올지 명시한다.
  • 페이지 숫자를 누르면 다음 페이지로 넘어가는 형태의 UI에서 많이 사용한다.
  • Pagination 도중에 데이터베이스에서 데이터가 추가되거나 삭제될 경우 저장되는 데이터가 누락되거나 중복 될 수 있다.
  • 알고리즘이 간단하다.

Cursor Based Pagination

  • 가장 최근에 가져온 데이터를 기준으로 다음 데이터를 가져오는 방식이다.
  • 요청을 보낼때 마지막 데이터의 기준값(ID등 Unique값)과 몇 개의 데이터를 가져올지 명시한다.
  • 스크롤 형태의 리스트에서 자주 사용한다.
  • 최근 데이터 기준값을 기반으로 쿼리가 작성되기 때문에 데이터가 누락되거나 중복될 확률이 적다.

0개의 댓글