무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
안녕하세요, 무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점을 설명한 부분에 질문이 있습니다.
페이지 방식을 무한 스크롤 방식에 적용 시 문제점으로 아래 2가지를 제시하셨는데요,
1) 페이지가 추가된 경우, 데이터 중복 조회 문제
2) 페이지가 삭제된 경우, 데이터 누락 문제
궁금한 점은, 이러한 문제는 무한 스크롤에서 사용했을 때 뿐 아니라, 페이지 번호 방식을 사용할 때도 마찬가지로 문제가 있는 것 아닌가 싶다는 것입니다.
페이지 번호 방식 자체의 한계라고 생각하는데, 페이지 번호 방식에서는 발생하지 않는 문제인가요?
Answer 2
1
재량님, 안녕하세요!
사용성과 실제 쿼리 사이에서 혼동이 있으셨을 것 같습니다.
무한 스크롤은 사용성 기준이고, offset/limit 방식의 쿼리에서 위 문제가 발생한다는 의미입니다.
무한 스크롤 사용성이든, 페이지 번호 사용성이든, offset/limit 방식의 쿼리에서는 위 문제가 여전히 발생합니다.
무한 스크롤 사용성에서는 위 문제가 사용자에게 혼란을 야기할 수 있기 때문에 새로운 쿼리 방식을 설명하게 되는 것입니다!
1
안녕하세요, 인프런 AI 인턴입니다.
최재량님, 질문 주셔서 감사합니다.
페이지 번호 방식은 말씀하신 대로 페이지가 추가되거나 삭제될 때 데이터의 중복 조회나 누락 문제가 발생할 수 있습니다. 이는 무한 스크롤뿐만 아니라 페이지 번호 방식에서도 발생할 수 있는 한계입니다.
특히, 데이터베이스에서 페이지 번호 방식으로 데이터를 가져올 때, 데이터가 실시간으로 추가되거나 삭제되는 상황에서 데이터 정합성을 유지하기 어려울 수 있습니다. 예를 들어, 10개의 아이템을 한 페이지로 설정하고, 페이지 1을 조회하는 동안 새로운 데이터가 추가되면 다음 페이지로 넘어갈 때 일부 데이터가 중복될 수 있습니다. 반대로 데이터가 삭제되면 일부 데이터가 누락될 수 있습니다.
이러한 문제를 해결하기 위해 Spring Data JPA에서는 오프셋 기반 스크롤링이 아닌 키셋 기반 스크롤링을 사용하는 방법도 있습니다. 키셋 기반 스크롤링은 데이터베이스 인덱스를 활용하여 오프셋 기반의 단점을 보완할 수 있습니다. 좀 더 자세한 정보는 Spring Data JPA 문서에서 확인하실 수 있습니다.
추가적인 궁금증이 있으시면 언제든지 질문해 주세요!
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
38
2
게시글 테스트 데이터 삽입
0
43
2
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
0
95
2
좋아요 기능 정합성 보장 방법
0
90
2
좋아요 동시성처리 최적의 선택?
1
115
2
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
0
85
2
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
0
54
1
조회수 조회 로직 질문
1
64
2
비로그인 유저도 어뷰징 방지 정책
1
63
2
CommentServiceTest의 테스트 로직 질문
0
50
2
path 쿼리 관련 질문드립니다!
0
55
2
antigravity 에디터를 쓰신다면 종료해주세요
1
122
0
프로젝트 구조
0
83
2
article_like_count api test
0
70
2
이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.
0
101
2
[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제
0
88
2
findByPath에서 articleId로도 검색을 해야 할 것 같아요.
0
87
3
jpa ddl-auto none을 하는 이유와 join 방법
0
92
2
팩터리 메소드와 response 객체 사용 이유가 궁금합니다!
0
85
2
커서 기반 페이지네이션 과 무한 스크롤링
0
97
2
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
0
95
2
멀티 모듈이 아닌 MSA 환경에서 common
0
146
2
2Depth 강의 도중 궁금한 점 있어요!!
0
73
2
샤딩에 대해서 궁금점있습니다.
0
112
2

