우선, 해당 글에서는 두 가지 방식으로 무한 스크롤을 적용해 볼 것이다.
두 방식 모두 Pagination을 사용하는 방식인데 그 차이는 무엇일까?
(결과는 맨 아래로 내리면 있슴돵~ ^^)
1번 방식은 페이징 방식과 동일하다. 클라이언트로부터 스크롤 시 조회할 paging관련 정보를 받아와서 페이징 조회를 하면 된다.
그렇다면 이 페이징 조회의 원리는 무엇일까?
위 문장에서 언급한 paging관련 정보란 페이지 번호와 페이지 크기를 말한다.
클라이언트로부터 전달받은 페이지번호와 페이지 크기를 이용해서 offset과 limit을 구하게 된다.
offset: 실제 데이터를 검색하기 위한 기준이 되는 데이터 개수를 의미하기도 한다.
limit: offset으로부터 몇 개의 데이터를 조회할 것인지 그 최대 개수를 의미한다. (limit보다 적은 데이터가 있다면, 그만큼 조회하게 된다.)
e.g) 1번 데이터부터 조회한다는 가정 하, 페이지 크기가 5이면서, offset이 10이라면?
==> 10번째 데이터부터 5개의 데이터를 읽는다.
위 방식의 큰 문제는 offset으로 인한 불필요한 탐색이다.
만약 offset이 백만이라고 가정하면 100만 개의 데이터를 탐색한 후에서야 그다음 유의미한 데이터들을 조회할 수 있는 것이다.