-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
📝 배민 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

💩 챌린지 과제
페이징 처리에 대해 고민해보세요.
- 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;
목록 조회를 커서 페이징 방식으로 구현한 것이다.
Metadata
Metadata
Assignees
Labels
No labels