ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 페이지네이션(Pagination)
    iOS/Wiki 2022. 1. 13. 02:42

    안녕하세요!! 이번엔 페이지네이션에 대해서 정리했습니다.

    이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽


     

    한번에 서버에서 많은 양의 데이터를 받아오는 것은 서버에게도, 사용자의 device에도 큰 부담이다.

    많은 양의 데이터를 다루는 API들을 살펴보면, 데이터들을 page 단위로 쪼개서 요청한 query에 따라 몇 번째 page를 보낼 것인지 결정하는 방법들이 쓰인다.

    그래서 보통 API를 호출해서 데이터를 가져오게 되면, 따로 코드를 작성하지 않는 이상 오직 한 페이지의 데이터만을 보게된다.

    여기서 페이지를 다루는 방법(언제, 어떻게 다른 페이지의 데이터를 가져올 것인가)을 페이지네이션이라고 한다.

     

    Pagination 방법

    페이지네이션을 구현하는 방법은 3가지가 있다.

    OffsetPagination

    • PageNumberPagination
      • 몇 번째 페이지인지 표시하는 방식
    • LimitOffsetPagination
      • 몇 번째 오프셋부터 보여줄 지 결정하는 방식

    다음 페이지나 오프셋을 보기 위해 정보를 요청하는 사이에 서버에 데이터가 더 쌓인다면, 사용자가 봤던 페이지를 또 보게 된다.

    쇼핑몰이나 게시판에서 글이 새로 올라오면, 그 페이지의 마지막 게시물이 다음 페이지의 첫 번째 게시물이 되는 것을 생각하면 된다. 서버의 데이터 변화가 적은 구조인 경우, OffsetPagination을 사용하는 것이 안전하다.

    CursorPagination

    클라이언트가 가지고 있는 마지막 데이터를 기준으로, 다음 데이터를 조회하는 방식이다.

    사용자가 조회한 시점 이후에 최신 데이터가 서버에 추가되었을 경우, 페이지네이션으로 조회가 힘들 수 있다.

    현재 페이지를 기준으로 전, 후의 데이터를 호출하는 방식이기 때문에, 페이지를 건너뛰고 중간 페이지에 대한 값을 얻기가 힘들다.

    'iOS > Wiki' 카테고리의 다른 글

    POP(Protocol-Oriented Programming) in Swift (1/2)  (0) 2022.03.28
    ReactorKit 사용기  (0) 2022.03.05
    Swift ARC(Automatic Reference Counting)  (0) 2022.01.15
    Localization  (0) 2022.01.14
    UserDefaults  (0) 2022.01.11

    댓글

Designed by Tistory.