Spring 13. 페이지네이션

김창민·2024년 8월 14일

BE

목록 보기
33/50

콘텐츠의 양이 매우 많은데, 한 화면에 모든 정보를 출력하기 위해선 과도한 스크롤이 동반되어야 한다.
이를 방지하기 위해서 콘텐츠를 여러 페이지로 나눠서 페이지를 이동하며 콘텐츠에 접근 할 수 있는 기법이 페이지 네이션이다.

우리가 아는 인스타그램, 네이버 블로그, 구글.. 등등 모두가 페이지네이션 기법을 사용해서 콘텐츠를 제공하고 있다.

나의 경우 서버와 관련된 공부를 하기 때문에 Front에서 어떤 신호를 보내는지 정확하게는 모르지만, 우선 한 페이지에 몇개의 콘텐츠를 제공할 것인지 앞단과 결정했다고 가정을 하겠다.

그러면 출력되는 페이지가 갖게되는 정보는 1. 한 페이지에 보여줄 데이터 수 2. 데이터의 위치(현 페이지) 이다.

아직 JPA를 학습하지 않았기 때문에 JDBC로 예를 들면, JDBC는 sql문을 이용해서 DB의 데이터와 소통하게 된다. 이때. 순수하게 SELECT문만 사용하면 해당 콘텐츠의 전부를 가져오게 되는데, Limit문을 사용하면 위에서 언급한 페이지가 갖게되는 정보를 이용해서 출력할 콘텐츠의 개수를 특정할 수 있게 된다.

먼저 데이터의 위치. 즉, Offset은 단순하게 Client가 접근하고자 하는 페이지를 사용하면 된다.
또한 한 페이지에 보여줄 데이터 수는 앞단 개발자와 뒷단 개발자가 결정하는건지는 잘 모르지만, 일단 정적이라고 가정한다면 이 두 정보를 가지고 Limit의 매개변수를 채울 수 있다.

(this.PageNum - 1) * this.PageSize;
이와 같이 현 페이지 값과 한 페이지에 출력되는 데이터 수를 안다면, Limit의 시작점을 계산할 수 있고 (1번 파라미터), this.PageSize는 2번 파라미터로 사용된다면, 시작점과 개수를 통해 페이지를 구현할 수 있게된다.

이처럼 페이지네이션은 단순한 기법이다.

profile
일일 회고 : https://rlackdals981010.github.io/

0개의 댓글