Pagination

EricHan·2022년 8월 24일
0

웹서핑을 하다 게시물들이 많은 페이지에 접속하게 될 때, 어떠한 사이트에서 검색을 했더니 검색결과가 엄청 많이 떴을 때

지속적으로 정보를 보기 위해 스크롤을 밑으로 내리거나 페이지 목록을 넘긴 적이 있을 것이다.

이와 같이 한눈에 확인 하기 힘든 양에 데이터를 보여줘야할 때 지속적으로 데이터를 보여주는 방식이 Pagination 혹은 Paging 이라고 한다.

보통 Pagination은 필요한 갯수를 지정하고 상황에 맞춰 정렬기준이 조건에 추가되는 방식이다.(정렬기준 + 갯수)

Pagination은 처리방식에 따라 두가지로 나눠지는데

  1. 오프셋 기반 페이지네이션(Offset-based Pagination)
    데이터 베이스의 offset 쿼리를 사용하여 페이지 단위로 구분하여 요청 및 응답을 하는 방식

Mysql에서는 LIMIT쿼리와 offset 쿼리에 ' ' 콤마를 붙여 사용 개수를 및 건너 뛸 row(페이지수)지정 할 수 있었는데

직관적이라 보기 편하고 이해하기 쉬워 쓰기 편하다는 장점이 있지만,

사용자가 늘어나 데이터 변화가 빠르게 흘러가는 사이트에서는 페이지를 넘겨도 중복되는 데이터가 보여질 수 있다는 문제점이 있다.

  1. 커서 기반 페이지네이션(Cursor-based Pagination)
    Cursor 개념을 사용하여 사용자에게 응답해준 마지막 데이터 기준으로 다음 n개 요청/응답
    쉽게 설명해놓은 글을 알아봤더니 cursor를 포인터라고 생각하고 보면 이해가 잘된다고 하였다...

https://daeuungcode.tistory.com/128

즉 cursor(기준점 혹은 row)를 만들어서 "이 cursor가 가리키는 것 다음 부터 n개의 데이터를 불러와주십쇼!
하는 방식이다.

첫번째 설명했던 오프셋 기반 페이지네이션의 문제점이 어느정도 보완된 방식이라고도 볼 수 있다.

profile
desarollitor

0개의 댓글