[Spring Boot] Pageable 커스터마이징하기
![이미지](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilCUeEIo3N2WtWz_f_y9dlTp52QmDa6QSSAQAb-H9zEaFYLWhjCavdO_1CNA52i8LwX5NCbWUnUCZnqxE1xezsU7yE6nu5ItJynTqNiZ6jCuX2JhN5Dmf4f50jcoHyk3c79oJ2EzCOk70/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2020-03-18+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%258C%25E1%2585%25A5%25E1%2586%25AB+10.56.08.png)
안녕하세요. 남산돈가스입니다. 지난 포스팅 [Spring Boot] JPA + Pageable 을 이용한 페이징 처리 에서 마지막 Pageable 커스터마이징에 대한 언급을 했었는데, 이번 포스팅에서 그 내용을 다루어 보려고 합니다. 일반적으로, Pageable을 파라미터로 Controller를 구현하면 Request Parameter 를 통하여 Handling 할 수 있는 파라미터는 기본적으로 page, size, sort 이렇게 세 가지 입니다. page : 조회할 페이지 번호 (default : 0) size : 한 페이지 당 조회 갯 수 (default : 20) sort : 정렬 기준 (정렬할 기준컬럼,ASC|DESC) 위와 같은 기본 설정을 가지고 Pageable 객체를 Handling 할 수 있습니다. 하지만 만약 기존 레거시 코드에서 Pageable을 사용하는 페이징처리로 이관하는 작업을 한다고 가정하면, 웹 화면에서 요청하던 기존 레거시 페이지 요청 파라미터를 전부 수정해줘야하는 번거로움이 생기게 됩니다. 저 또한 이와 같은 상황에서 Pageable 요청 파라미터를 커스터마이징하는 방식을 먼저 생각하게 되었습니다. 예제를 보겠습니다. @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) { SortHandlerMethodArgumentResolver sortArgumentResolver = new SortHandlerMethodArgumentResolver(); sortArgumentResolver .setSortParameter ( "sortBy" ); s