인프런 커뮤니티 질문&답변

SJ님의 프로필 이미지

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

응답에 total 프로퍼티 추가하기

cursor 기반 페이지네이션 page 기반 페이지네이션

24.07.20 01:31 작성

·

99

0

cursor 기반 페이지네이션과

page 기반 페이지네이션에서

어떤 상황에서 cursor 를 사용하고 어떤 상황에서는 page 기반 사용해도 될까요 ??

insert , delete 에 대한 요청이 잦은 서비스 라면 cursor 를 사용하고

주로 get 에 대한 요청밖에 거의 없을것 같은 서비스라면 page 기반 페이지네이션을 사용하면 될까요 ?

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

2024. 07. 22. 10:17

안녕하세요!

강의에서 알려드린대로 둘은 장단점이 있을뿐 어떤 상황에 어떤걸 사용해야하는지 룰이 있는게 아닙니다.

일반적으로 인터넷에 보이는 UI중 무한 스크롤은 커서 기반을 사용하는 경우가 많고 페이지를 눌러서 다음 페이지로 넘어가는 형식을 채택하는경우 페이지 기반을 사용하는 경우가 많습니다.

insert와 delete에 대한 말씀을 드린건 각 페이지네이션 전략별로 어떤 고려사항이 있는지 말씀드린 것 뿐이지 일반적으로 결정에 중대한 영향을 미치는 요소라고 말씀드리긴 어렵습니다.

감사합니다!

SJ님의 프로필 이미지
SJ
질문자

2024. 07. 26. 12:14

감사합니다 ! 찾아보니까 특정 페이지로 바로 넘어갈땐 cursor 를 사용하기가 어렵다고 하던데

그래서 페이지로 넘어가는것을 페이지 기반으로 하는건가 ?? 생각이 들었어요

맞을까요 ?? ㅎ

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

2024. 07. 26. 15:07

네 맞습니다!

다만 요즘 트렌드는 "페이지" 기반의 UI를 잘 만들지 않습니다. 무한 스크롤을 선호하는 편이라 (모바일 환경이 너무 압도적이기 때문에.. 밑으로 내려서 페이지를 누르는 것 보다 무한하게 계속 아래로 같은 모션으로 스크롤 하는게 훨씬 UX가 좋습니다) 커서기반을 많이 사용합니다.

물론 무한스크롤을 페이지기반으로 할 수 있긴 하지만 강의에서 알려드린대로 발생 할 수 있는 다양한 문제가 무한 스크롤에선 더욱 도드라지게 보일 수 있습니다. (실제 이런 문제가 있는 앱들도 있습니다)

감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 20. 01:36

안녕하세요, 인프런 AI 인턴입니다.

질문하신 cursor 기반 페이지네이션과 page 기반 페이지네이션의 사용 상황과 관련하여, 말씀하신 내용과 유사한 질문에 대한 답변을 찾았습니다. 이 질문은 “[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core” 과정의 지식공유자가 답변을 제공한 것입니다.

SJ님께서는 cursor 기반 페이지네이션과 page 기반 페이지네이션의 선택에 대해 질문하셨는데, 이에 대해 “정렬에 대한 질문” 이라는 제목으로 올라온 다른 질문에서 다룬 내용이 유용할 것 같습니다. 그 답변에서는, 커서 페이지네이션의 사용을 고려할 때 커서가 어떻게 동작하는지, 특히 정렬과 관련해 주의해야 할 점들에 대해 설명하고 있습니다.

주요 내용을 요약하자면,
커서 페이지네이션은 주로 데이터가 빈번하게 변경되는 경우, 즉 새로운 데이터가 추가되거나 삭제되는 상황에서 데이터의 일관성을 유지하기 위해 사용됩니다. 반면, 페이지 기반 페이지네이션은 주로 데이터가 자주 변경되지 않거나, 사용자가 특정 페이지로의 접근이 빈번한 경우에 적합합니다. 커서 페이지네이션은 마지막으로 조회한 데이터의 위치를 기반으로 다음 데이터를 가져오는 방식으로, 데이터의 중복이나 누락 없이 연속적인 데이터 접근을 가능하게 합니다.

이에 대한 더 자세한 설명은 아래의 게시글에서 확인하실 수 있습니다:

  • “정렬에 대한 질문”에서는 커서 페이지네이션과 그 동작 원리에 대한 논의가 이루어졌으며, 이것이 어떤 상황에서 유리한지 설명되어 있습니다.

SJ님께서 질문하신 상황에서, 데이터 삽입이나 삭제가 잦은 경우 커서 페이지네이션을 사용하는 것이 데이터의 일관성을 유지하는데 도움이 됩니다. 반면, 데이터가 상대적으로 정적이며 사용자가 주로 데이터의 목록을 조회하는 경우에는 페이지 기반 페이지네이션을 사용하는 것이 효율적일 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

SJ님의 프로필 이미지

작성한 질문수

질문하기