Cursor기반 페이지네이션 성능 테스트 ( feat. Jmeter )

Woo Yong·2024년 5월 26일
1

프로젝트 회고

목록 보기
6/8
post-thumbnail

개요

데이터 중복 문제로 UX가 저하되는 오프셋 기반 페이지네이션을 커서 기반 페이지네이션으로 리팩토링했습니다.

UX측면 뿐 아니라, 응답시간 측면에서는 얼마나 차이가 나는지 성능 테스트를 진행해보려고합니다.

그리고 오프셋 페이지네이션의 단점 중 offset 값이 커질수록 성능이 저하되는 것을 직접 확인해보기 위해, 테스트 진행 시, 가장 마지막 페이지를 요청하여 테스트를 진행해보려고 합니다.

테스트 조건

Number of Threads : 1
Ramp-up period : 1
Loop Count : 10

해당 테스트는 호텔 조회 API에 대한 안정성을 테스트하기 위한 목적이기 때문에, Thread 개수와 Ramp-up period 값은 변경하지 않고, 각 스레드가 반복하는 횟수인 Loop Count 값만 10으로 높여서 하나의 사용자가 10번의 API 요청했을 때 평균 응답 시간을 측정해보려고합니다.

1만건 테스트

오프셋 페이지네이션

커서 페이지네이션

10만건 테스트

오프셋 페이지네이션

커서 페이지네이션

20만건 테스트

오프셋 페이지네이션

커서 페이지네이션

정리

총 1만, 10만, 20만건 데이터를 통해 성능 테스트를 진행해보았습니다.

1만건의 테스트의 경우 두 방식 모두 성능적인 부분에서 차이가 많이 나지 않았습니다.
그리고 10만건, 20만건 데이터를 삽입 후 테스트를 진행했을 때는 응답시간이 모두 길어졌고, 약 2배정도 차이가 나는 것을 확인했습니다.

이처럼 오프셋 방식은 offset값이 작을 때는 커버 방식과 큰 차이는 없었지만, offset 값이 커질 수록 성능 저하가 발생하는 것을 직접 확인했으며, 20만건 데이터 기준으로 약 64.38 % 성능이 향상되었습니다.

profile
Back-End Developer

0개의 댓글

관련 채용 정보