오프셋 기반 페이지네이션 개선 (완료 시 )
문제
•
페이징처리가 되어있어야할 기능이 처리가 되어있지 않음
◦
페이징 처리가 필요한 기능과 필요하지 않은 기능이 명세되어있지 않음
•
오프셋 기반의 단점으로 인해 커서 기반으로 개선해야하는 상황 발생
◦
오프셋 기반의 단점
▪
페이징 처리를 위해 모든 데이터를 탐색해야함
▪
페이징 조회 와중 데이터가 추가/삭제되면 데이터 중복 및 안 보이는 이슈 발생
◦
커서 기반으로 변경 시, 커서고유값을 프론트에서 백엔드로 알려주어야 하는 이슈 발생
▪
limit (페이지크기)
▪
nextToken (고유id)
•
커서 기반으로 리팩토링하거나 기능 추가 시, 테스트 코드가 변경됨
해결방안
•
두 가지를 해결하기로 함
◦
페이징 미구현되어있는 기능을 페이징 기능을 추가
◦
오프셋 -> 커서 리팩토링
•
페이징 처리해야하는 기능을 명세화하자
◦
CouponController
▪
사용가능한 쿠폰 조회
▪
사용완료한 쿠폰 조회
◦
ProductLikeController
▪
관심상품 조회 요청
◦
ProductQueryController
▪
상품 전체 조회 // [캐싱처리] // 무한스크롤
▪
상품 상세 조회
▪
상품 체결내역 조회
•
오히려 기간 조건값을 넣어야할 것 같음
▪
판매 입찰가 조회
▪
구매 입찰가 조회
◦
UserBoughtHistroyController
▪
구매자 구매완료내역 조회
▪
구매자 진행 중인 구매입찰 조회
◦
UserSellHistroyController
▪
판매자 판매내역 조회
▪
판매자 진행 중인 판매입찰 조회
•
어떻게 커서 기반으로 리팩토링할지는 재윤님과 이야기해보자
◦
현재 어떻게 처리되고 있는지
◦
아래 값을 어떻게 처리할 수 있을지
▪
limit (페이지크기)
▪
nextToken (고유id)
◦
(추가질문) 어떻게 로컬에서 프론트를 돌릴 수 있나용?
•
커서 기반으로 변경 시, 변경되는 기능에 따라 테스트 코드 변경하기로 함