Corgi [Spring] 스프링 부트에서 Pageable을 활용한 페이징 처리 방법
본문 바로가기
코딩/스프링(Spring)

[Spring] 스프링 부트에서 Pageable을 활용한 페이징 처리 방법

by 짱아아빠 2023. 6. 12.
반응형


안녕하세요! 이번에는 스프링 부트에서 데이터의 페이징 처리를 위해 사용되는 Pageable에 대해 알아보겠습니다. Pageable은 스프링 프레임워크의 기능으로 제공되며, 데이터베이스에서 결과를 페이지별로 가져오고 페이징 처리를 수행하는 데 도움이 됩니다.

1. Pageable이란?
   - Pageable은 스프링 데이터의 인터페이스로, 페이징 처리를 위한 정보를 제공합니다.
   - 페이지 번호, 페이지 크기, 정렬 방식 등 페이징에 필요한 정보를 담고 있습니다.
   - 스프링 부트에서는 주로 `PageRequest` 객체를 통해 Pageable을 생성하고 사용합니다.

2. Pageable의 사용법
   - 컨트롤러에서 Pageable을 매개변수로 받아와 사용할 수 있습니다.
   - 예를 들어, 다음과 같이 메서드 시그니처에 `Pageable`을 추가할 수 있습니다:

   @GetMapping("/users")
     public ResponseEntity<List<User>> getUsers(Pageable pageable) {
         // 페이지 관련 정보(page number, page size, sorting)를 사용하여 데이터 조회 및 페이징 처리 수행
         // ...
     }

 

 
   - 페이지 정보를 사용하여 데이터 조회 및 페이징 처리를 수행할 수 있습니다. 예를 들어, `userRepository.findAll(pageable)`과 같이 JpaRepository를 사용하여 데이터를 가져올 수 있습니다.

3. 페이지 결과 반환
   - Pageable을 사용하여 데이터를 조회하고 페이징 처리를 수행한 후, 결과를 반환해야 합니다.
   - 스프링 부트에서는 `Page` 타입을 사용하여 페이지 결과를 반환합니다.
   - `Page` 타입은 조회된 데이터 리스트와 함께 페이징에 필요한 정보를 제공합니다. 이를 컨트롤러에서 클라이언트로 전달하면 됩니다.

 

반응형


4. 페이지 링크 생성
   - 페이징 처리를 위해서는 페이지 링크를 생성하여 클라이언트에게 전달해야 합니다.
   - 스프링 HATEOAS(Hypermedia as the Engine of Application State)를 활용하여 페이지 링크를 생성할 수 있습니다.
   - `PagedResourcesAssembler`를 사용하여 `Page` 객체를 `PagedResources`로 변환하고, 링크를 추가할 수 있습니다.

위의 내용을 참고하여 스프링 부트에서 Pageable을 활용한 페이징 처리 방법을 구현해보세요. Pageable을 사용하면 데이터의 효율적인 페이징 처리와 페이지 링크 생성을 간편하게 수행할 수 있습니다. 이를 통해 사용자에게 편리한 페이지네이션 기능을 제공할 수 있습니다.

반응형

댓글