프로젝트를 진행하며 생겼던 궁금증에 대해 정리하고 멘토님께 여쭤봤던 내용을 정리해봤습니다.
무한 스크롤 방식은 정렬 방식에 따라 offset 방식과 no-offset 방식으로 구분됩니다.
no-offset 방식의 특징은 정확한 pk값이 있어야만 제대로 된 값을 조회할 수 있다는 점입니다.
저는 RDBMS에서 무한스크롤을 구현하며 최신순, 좋아요순, 조회순으로 정렬하는 방법을 고민했는데 좋아요순, 조회순으로 정렬할 시 pk값이 정확히 정의되지 않아 구현할 수 없었습니다.
위 방식의 단점으로는 매번 offset을 모두 조회하다보니 시간이 지날수록 성능이 안좋아진다는 점입니다.
위 방법 또한 생각해봤지만 이렇게 하게되면 프로젝트의 모든 게시물을 스냅샷 찍기에는 무리가 있어 일부만 찍게 되니 이 또한 적합하지 않다고 생각했습니다.
대부분의 실시간 목록 조회에는 ElasticSearch를 사용합니다. ES는 noSQL 방식으로 빠른 조회와 검색이 특징입니다. 또한 사용자의 검색 결과를 기준으로도 다양한 정렬조건을 사용할 수 있어 좀 더 사용자 편의에 좋습니다.