Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.5주차 과제 #10

Open
Yeonnies opened this issue Nov 15, 2024 · 0 comments
Open

4.5주차 과제 #10

Yeonnies opened this issue Nov 15, 2024 · 0 comments

Comments

@Yeonnies
Copy link
Collaborator

Yeonnies commented Nov 15, 2024

📝 배민 API

HTTP 이름 URL
GET 음식 조회 /
GET 주문 내역 조회 /orders
POST 회원가입 /members/signup
POST 로그인 /members/signin
POST 주문 /
POST 별점 작성 /restaurant/{restaurantId}/{userId}/rating
PATCH 주문 내역 수정 /orders/{orderId}
PATCH 별점 수정 /restaurant/{restaurantId}/{userId}/rating
DELETE 주문 내역 삭제 /orders/{orderId}
DELETE 별점 삭제 /restaurant/{restaurantId}/{userId}/rating

📝 배민 ERD

스크린샷 2024-11-15 오후 3 53 32

💩 챌린지 과제

페이징 처리에 대해 고민해보세요.

  • Offset based 페이징: 직접 페이지 번호를 찾아내어 이동하는 페이징
select *
from book
order by likes desc
limit 10 offset 0;

위와 같이 limit를 통해 한 페이지에서 보여줄 데이터의 개수를 정하고 offset으로 몇 개를 건너뛸지를 정한다.

→ offset based paging의 경우 복잡하지 않게 구현할 수 있다는 장점이 있지만, 페이지의 뒤로 갈수록 쿼리의 속도가 느려지고, 데이터의 추가와 삭제가 잦을 경우 누락 혹은 중복이 발생한다는 문제가 있다.

  • Cursor based 페이징: 마지막으로 조회한 대상의 다음 것부터 조회할 수 있는 페이징
select * from book where created_at < 
   (select created_at from book where id = 3)
   	order by created_at desc limit 15;

목록 조회를 커서 페이징 방식으로 구현한 것이다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant