pagination

riassuc·2021년 6월 13일

Pagination

말 그대로 페이지 번호, 페이지 번호 매기기를 하는 것이다.
백엔드가 프론트의 요청에 대해서 응답할때 많은 수의 데이터가 있다면, 페이지를 나누어서 보내주는 거라고 생각하면 될 것 같다.

#1
return 응답할데이터

#2
if 현재페이지 > 0 and 페이지당보여줄데이터 > 0:
            시작  = (현재페이지 - 1) * 페이지당보여줄데이터
            끝    = 시작 + 페이지당보여줄데이터
            응답할데이터 = 응답할데이터[시작:]

return 응답할데이터

보통 이런 구조로 많이 하는것 같다.

이전에는 #1 처럼 데이터 전체를 반환했었는데,
#2 코드를 거쳐서 데이터를 슬라이싱해서 보내는 것이다.


위의 이미지에서
"count"는 반환한 전체 데이터의 수,
"page"는 현재 보고 있는 페이지,
"per_page"는 각 페이지당 데이터 중 몇개를 나타나게 할 것인지,
"pages"는 총 페이지의 수,
"elements"는 현재 페이지에 보이고 있는 엘리먼츠의 수,
이런식으로 나타나게 했다.

per_page와 elements는 기본적으로 같지만 필터링에 따라서 달라질 수 있기 때문에 구분해서 나타나게 했다.

원래 페이지네이션 같은것은 그냥 프론트엔드에서 하는 일인줄 알았는데 백엔드에서도 이렇게 구현할 수 있어서 너무 신기했다.

profile
riassuc

0개의 댓글