![](https://velog.velcdn.com/images%2Fdrv98%2Fpost%2F090f2b4d-1ff2-4354-aa26-8e225d02ea77%2Fimage.png)
![](https://velog.velcdn.com/images%2Fdrv98%2Fpost%2F8fc37fe7-1e56-4317-8d1c-aab53fd0ae62%2Fimage.png)
pageSize, pageNo 옵션 쿼리스트링
디폴트 값 적용하여 없어도 에러가 발생하지 않게
![](https://velog.velcdn.com/images%2Fdrv98%2Fpost%2F3d799dba-ca6d-402a-af27-9757b56b6ff8%2Fimage.png)
1. PageController
pageNo = 0 , pageSize = 10 디폴트
@GetMapping
public List<PostDto> getAllPosts(
@RequestParam(value = "pageNo", defaultValue = "0", required = false) int pageNo ,
@RequestParam(value = "pageSize", defaultValue = "10", required = false) int pageSize
){
return postService.getAllPosts(pageNo, pageSize);
}
2. PostService
//모든 포스트들을 가져오기 (페이지네이션)
List<PostDto> getAllPosts(int pageNo, int pageSize);
3. PostServiceImple
@Override
public List<PostDto> getAllPosts(int pageNo, int pageSize) {
//Pageable 객체 생성
Pageable pageable = PageRequest.of(pageNo, pageSize);
//pageable 을 입력해 원하는 페이지의 사이즈만큼 리스트 리턴
Page<Post> posts = postRepository.findAll(pageable);
//페이지객체 안의 리스트만 가져오기
List<Post> pagePosts = posts.getContent();
//DTO로 변환하여 리턴
return pagePosts.stream().map(post -> mapToDto(post)).collect(Collectors.toList());
}
![](https://velog.velcdn.com/images%2Fdrv98%2Fpost%2F42c413a2-30b7-4bb8-b6b1-6b0e50b8c1a4%2Fimage.png)
![](https://velog.velcdn.com/images%2Fdrv98%2Fpost%2F7c082b8c-e328-40c7-b54e-960d9fe1f41f%2Fimage.png)
![](https://velog.velcdn.com/images%2Fdrv98%2Fpost%2F04253990-64bc-4e60-b589-a4f8b2da1d66%2Fimage.png)