inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

제미니의 개발실무 - 커머스 백엔드 기본편

이 강의를 선택한 모든 예비 개발자분들에게

페이징 처리에서 offset/limit에 대한 질문

2

박세진

작성한 질문수 4

0

안녕하세요! 페이징 처리 방식에 대해 궁금한 점이 있어 질문드립니다.

코드를 보니 요청값으로 offset과 limit을 받고 이를 Pageable로 변환하고 있습니다.

data class OffsetLimit(

val offset: Int,

val limit: Int,

) {

fun toPageable(): Pageable {

return PageRequest.of(offset / limit, limit)

}

}
그런데 이 방식은 offset이 limit의 배수가 아닌 경우 의도하는 바와 다르게 동작할 수 있을 거 같다는 생각이 들었습니다.

예를 들어 offset=15, limit=10인 경우 15번째 데이터부터 10개인 15~19번째 데이터를 조회하는 것이 자연스럽다고 생각했습니다.

그런데 현재 구현에서는 offset/limit 계산으로 인해 PageRequest.of(1,10)이 되고 결과적으로 10~19번째 데이터가 조회될 거 같습니다. 제가 이해한 내용이 맞을까요??

 

그렇다면 이 방식은 더보기나 무한 스크롤처럼 offset이 항상 limit의 배수로 증가한다는 제약이 있을 때만 안전하게 사용할 수 있는 방식인지 궁금합니다.

예를 들어 클라이언트가 항상 아래처럼 요청한다고 정해져 있다면 문제가 없다고 봐도 될까요?
offset=0, limit=20

offset=20, limit=20

offset=40, limit=20

또 이런 제약이 있다면 limit을 request로 받기보다 서버에서 고정값으로 관리하는 것이 더 나은지도 궁금합니다.

마지막으로 어떤 API에서는 offset,limit을 받고 또 어떤 API에서는 page,size를 받는 경우가 있는데 실무에서는 각각 어떤 기준으로 선택하는지도 알고 싶습니다.

취준 준비하면서 제미니님의 강의 도움 많이 받고 있습니다!! 감사합니다 ^^

<정리>

  1. PageRequest.of(offset/limit,limit) 방식은 offset이 limit의 배수일 때만 안전한 방식인가요?

  2. 더보기/ 무한 스크롤에서는 offset,limit을 사용하는 게 더 자연스러운가요??

  3. limit이 정책적으로 정해져 있다면 request로 받지 않고 서버에서 고정하는 게 더 좋을까요?

  4. offset/limit 방식과 page/size 방식은 어떤 기준으로 선택하면 좋을까요??

kotlin spring-boot 도메인 dbms/rdbms backend

답변 0

usecase 사용 기준

1

33

2

궁금한점이 여러개 생겼습니다.

1

56

1

다양한 관점의 코드 경험을 위해 개선하지 않은 코드

1

58

1

histories() 응답에 PointHistory.id를 포함한 이유가 궁금합니다/

1

50

2

SettlementTargetRepository Jquery 질문

1

49

2

부가 기능을 이벤트 핸들러로 분리하는 기준이 있을까요?

1

66

2

엔티티의 pk 를 0으로 초기화하시는 이유가 있을까요??

1

71

2

제미니님 안녕하세요!

1

82

2

개념 간 격벽 분리와 목록 조회 시 발생하는 참조 구조

1

88

2

프로덕트와 프로덕트카테고리 사이의 삭제 정책

1

79

2

새로 개발한다면 구현 순서

1

141

1

의존 방향에 대한 고민

1

130

2

어드민(Back-office)에서 예약 변경 시, '할인 조건 재검증(쿠폰 회수)' vs '기존 혜택 유지' 중 어떤 정책이 일반적인가요?

1

103

2

OrderKeyGenerator 인스턴스화 generate() 질문

1

88

1

외부 API 통합 시 데이터 제어 범위 설계 질문

1

103

1

PG 결제 승인 로직

1

136

2

QnA에서 Join 필드 표현법

1

93

1

결제서비스 콜백 동시성문제 가능성

1

113

2

굿

1

113

1

도메인/엔티티 분리 상황에서 쓰기 작업 하는 방법

1

140

2

도메인 객체와 엔티티 객체 사용

1

140

2

CouponService 의존성 의문

1

103

2

상품 목록 조회 고도화 질문

1

115

2

표현 계층에서의 접근 지점이 다양해지는것과 이를 해결하기 위한 파사드의 도입에 대해 제미니님의 생각이 궁금합니다.

1

126

2