728x90
반응형
✨Pageable vs @RequestParam
페이징을 구현하던 중 페이징과 정렬에 관한 정보를 파라미터를 Pageable로 받아오는 방식과 @RequestParam으로 받아오는 방식의 차이점에 대해 찾아보게 되었다.
✨ Pageable
Pageable은 Spring Data JPA에서 제공하는 기능으로 페이징과 정렬 정보를 자동으로 처리한다.
컨트롤러에서 Pageable을 파라미터로 받으면. Spring이 요청 파라미터에서 page, size, sort을 자동으로 매핑해준다.
파라미터를 자동으로 매핑해주기 때문에 코드가 간결해진다는 장점이 있다.
그리고 Pageable에서 지원하는 sort 파라미터를 이용해 동적으로 정렬 조건을 설정할 수 있다.
✨ @RequestParam
@RequestParam을 사용하여 페이징 정보를 받아오면 파라미터를 직접 제어할 수 있기 때문에 유연성이 좋다.
또한 page, sort처럼 지정된 파라미터 명이 아닌 파라미터 이름을 직접 지정하여 사용할 수 있다.
하지만 직접 페이징과 정렬하는 코드를 작성해야 하므로 코드가 길어진다는 단점이 있다,.
Pageable처럼 sort를 지원하지 않기 때문에 정렬 조건을 직접 처리해야 하기 때문에 번거롭다.
✨ 결론
단순한 페이징이나 정렬이 필요한 경우에는 Pageable을 사용하는 것이 적합하고,
파라미터를 직접 처리해야 하거나 커스텀된 로직을 구현해야 하는 경우에는 @RequestParam으로 직접 제어하는 것이 적합하다.
728x90
반응형
'Spring' 카테고리의 다른 글
[BilRyoZo] JPA Soft Delete 구현, @SQLDelete, @Where, JPQL (2) | 2024.09.14 |
---|---|
멱등성, @PutMapping과 @PatchMapping의 차이 (0) | 2024.09.11 |
데이터 전달 시 Map보다 DTO를 사용해야 하는 이유 (0) | 2024.09.04 |
[AreYouTravelers] CodeDeploy와 CodeDeploy Agent, EC2 IAM Role이 필요한 이유 (0) | 2024.06.27 |
[AreYouTravelers] 시스템 아키텍처 (0) | 2024.06.26 |