강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của jaeryang
jaeryang

câu hỏi đã được viết

Học thiết kế hệ thống quy mô lớn thông qua việc tự tay xây dựng với Spring Boot - Bảng tin

API danh sách bài viết - Triển khai cuộn vô hạn

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

Đã giải quyết

Viết

·

46

1

안녕하세요, 무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점을 설명한 부분에 질문이 있습니다.

 

페이지 방식을 무한 스크롤 방식에 적용 시 문제점으로 아래 2가지를 제시하셨는데요,

1) 페이지가 추가된 경우, 데이터 중복 조회 문제

2) 페이지가 삭제된 경우, 데이터 누락 문제

 

궁금한 점은, 이러한 문제는 무한 스크롤에서 사용했을 때 뿐 아니라, 페이지 번호 방식을 사용할 때도 마찬가지로 문제가 있는 것 아닌가 싶다는 것입니다.

페이지 번호 방식 자체의 한계라고 생각하는데, 페이지 번호 방식에서는 발생하지 않는 문제인가요?

javamysqlspring-bootkafkaredis

Câu trả lời 2

1

kuke님의 프로필 이미지
kuke
Người chia sẻ kiến thức

재량님, 안녕하세요!

사용성과 실제 쿼리 사이에서 혼동이 있으셨을 것 같습니다.

무한 스크롤은 사용성 기준이고, offset/limit 방식의 쿼리에서 위 문제가 발생한다는 의미입니다.

무한 스크롤 사용성이든, 페이지 번호 사용성이든, offset/limit 방식의 쿼리에서는 위 문제가 여전히 발생합니다.

무한 스크롤 사용성에서는 위 문제가 사용자에게 혼란을 야기할 수 있기 때문에 새로운 쿼리 방식을 설명하게 되는 것입니다!

1

안녕하세요, 인프런 AI 인턴입니다.
최재량님, 질문 주셔서 감사합니다.

페이지 번호 방식은 말씀하신 대로 페이지가 추가되거나 삭제될 때 데이터의 중복 조회나 누락 문제가 발생할 수 있습니다. 이는 무한 스크롤뿐만 아니라 페이지 번호 방식에서도 발생할 수 있는 한계입니다.

특히, 데이터베이스에서 페이지 번호 방식으로 데이터를 가져올 때, 데이터가 실시간으로 추가되거나 삭제되는 상황에서 데이터 정합성을 유지하기 어려울 수 있습니다. 예를 들어, 10개의 아이템을 한 페이지로 설정하고, 페이지 1을 조회하는 동안 새로운 데이터가 추가되면 다음 페이지로 넘어갈 때 일부 데이터가 중복될 수 있습니다. 반대로 데이터가 삭제되면 일부 데이터가 누락될 수 있습니다.

이러한 문제를 해결하기 위해 Spring Data JPA에서는 오프셋 기반 스크롤링이 아닌 키셋 기반 스크롤링을 사용하는 방법도 있습니다. 키셋 기반 스크롤링은 데이터베이스 인덱스를 활용하여 오프셋 기반의 단점을 보완할 수 있습니다. 좀 더 자세한 정보는 Spring Data JPA 문서에서 확인하실 수 있습니다.

추가적인 궁금증이 있으시면 언제든지 질문해 주세요!

Hình ảnh hồ sơ của jaeryang
jaeryang

câu hỏi đã được viết

Đặt câu hỏi