안녕하세요, 오늘은 팀프로젝트 중간 피드백중 번뜩한 Spring Pageable 에 대해 알아보았습니다.
Spring Pageable
스프링에서 페이지네이션은 사용자가 직접 구현해서 사용할 수 있고, Spring에서 제공하는 Pageable을 사용할 수도 있습니다.
Pageable은 Spring에서 제공하는 Pagination을 위한 인터페이스 입니다.
size : 한 페이지당 담길 데이터의 양 ex) 10, 5, ...
page : size를 기준으로 몇번째 페이지인지? ex) 0, 1, ...
sort : 무엇을 기준으로 정렬할 것인지? ex) createdAt,DESC, description
Pageable 을 사용해야하는 이유
요청마다 데이터를 모두 주는건 매우 비효율적인 방식입니다.
예를들어 게시물이 1000개 가량 존재한다고 가정했을때, 누군가가 게시물 전체 목록 조회 API를 호출할 때 마다 1000개 전부를 주면 부하가 심해지고 가독성도 떨어지며, 비효율적입니다.
따라서, 대부분의 웹은 사진과 같은 페이지로 구분해서 데이터를 전달합니다.
이렇게 데이터를 정렬하고, 페이지 크기에 따라 나눠서 전달하는 것이 바로 페이지네이션(pagination)이라고 합니다.