[10분 테코톡] 라젤의 무한 스크롤과 Pagination
- 초보 개발자가 무한 스크롤 구현을 위해 겪는 시행착오와 해결 과정을 담고 있습니다. 🧑💻
- Offset 기반 페이징은 page와 size를 사용하여 데이터를 가져오지만, 데이터 변경 시 중복 또는 누락 문제가 발생할 수 있습니다. ⚠️
- Pageable과 Page를 사용하면 요청과 응답을 객체로 관리하여 코드를 간결하게 만들 수 있지만, count 쿼리가 필요합니다. 📄
- Cursor 기반 페이징은 마지막 요소의 고유값을 기준으로 데이터를 조회하여 데이터 변경에 따른 문제를 해결합니다. 🔑
- Slice는 count 쿼리 없이 다음 페이지 존재 여부만 확인하여 가볍게 데이터를 조회할 수 있습니다. 🔪
- 무한 스크롤 구현 시 데이터의 일관성을 유지하는 것이 중요하며, Cursor 기반 페이징 또는 Slice를 사용하는 것이 좋은 대안이 될 수 있습니다. ✅
- Page, Pageable, Slice는 Spring Data JPA에서 제공하는 인터페이스로, 페이징 처리를 간편하게 구현할 수 있도록 도와줍니다. ⚙️
- 각 페이징 방식의 특징을 이해하고 상황에 맞게 선택하는 것이 중요합니다. 🤔