어떤 부분을 리팩터링하려 하나요?
페이지를 사용하는 곳 마다
@PageableDefault(page = 1) Pageable pageable
PagingUtils.validatePage(pageable.getPageNumber(), pageable.getPageSize());
Pageable internalPageable = PageRequest.of(pageable.getPageNumber() - 1, pageable.getPageSize());
코드가 사용될것이니, 이런 건 커스텀 페이지 객체 & argumentResolver를 적용해봐도 좋겠다는 생각이 드네요!
현재 각 컨트롤러에서 위 코드가 반복적으로 사용되고 있음
이러한 반복적인 로직을 줄이기 위해 커스텀 페이지 객체와 ArgumentResolver를 적용하여 일관된 방식으로 처리할 수 있도록 개선하고자함.
AS-IS
- 컨트롤러마다 @PageableDefault, PagingUtils.validatePage(), PageRequest.of() 코드 반복
TO-BE
- CustomPageRequest 객체를 만들어 PageRequest.of() 및 검증 로직을 포함
- ArgumentResolver를 적용하여 컨트롤러에서 자동으로 변환 및 검증 처리
- 컨트롤러에서는 CustomPageRequest 객체만 받아서 사용하도록 변경
작업 상세 내용
참고할만한 자료(선택)