게시글 페이징 처리

  1. 게시글 리스트 요청에 따른 Controller 생성
  2. 게시글 리스트 view 생성
  3. 비즈니스 로직을 담당하는 Service 파일 생성

페이징 처리 기능 구현 전 Pageable 인터페이스에 대해 먼저 알아보려 합니다.

Pageable

Pageable은 Spring Data 프로젝트에서 제공하는 인터페이스 중 하나로, 데이터베이스에서 검색 결과를 페이징 처리할 수 있도록 돕는 인터페이스입니다.

Pageable을 사용하면 검색 결과의 일부분만 가져오거나, 특정 페이지를 조회할 수 있습니다. 이를 통해 대량의 데이터를 처리할 때 성능을 향상시킬 수 있습니다.

Spring Data JPA에서 Pageable을 사용하면 다음과 같이 검색 결과를 페이징 처리할 수 있습니다.

Pageable pageable = PageRequest.of(page, size);
Page<Entity> entities = entityRepository.findAll(pageable);

여기서 page는 검색 결과에서 가져올 페이지 번호를 나타내며, size는 페이지당 표시할 항목 수를 나타냅니다. Entity는 검색 결과의 엔티티 클래스이고, entityRepository는 엔티티의 레파지토리 클래스입니다. 이렇게 하면 요청한 페이지의 결과가 entities 변수에 저장됩니다.

Pageable 인터페이스는 페이징 처리를 위한 getPageNumber(), getPageSize(), getOffset(), getSort() 등의 메서드를 제공합니다.

프로젝트에서 Pageable을 사용하려면, 페이지별 데이터 요청을 처리하는 컨트롤러를 작성하고, 뷰를 업데이트하여 페이징 된 데이터를 표시하고, 데이터베이스에서 페이징 된 데이터를 검색하는 비즈니스 로직을 처리하는 서비스 클래스를 작성해야 합니다. 또한, 레파지토리에 페이징 처리를 위한 메서드를 추가해야합니다.


Pageable 메서드

Pageable 인터페이스는 다음과 같은 메서드를 제공합니다.