해결된 질문
작성
·
76
0
안녕하세요 선생님 좋은 강의 감사합니다.
저희 articleController에서 readAll 부분을 보면
@GetMapping("/v1/articles")
public ArticlePageResponse findAll(
@RequestParam("boardId") Long boardId,
@RequestParam("page") Long page,
@RequestParam("pageSize") Long pageSize
) {
return articleService.readAll(boardId, page, pageSize);
}
이런식으로 pageSize를 쿼리 파라미터로 넘겨주도록 설계가 되어 있는데, pageSize라는 파라미터는 값을 받아서 처리하는 것이 아니라, 서버에서 값을 정하고 항상 똑같은 pageSize를 써야하는 것 아닌가요 ??
왜 pageSize를 인자로 받는지 이해가 잘가지 않습니다.
답변 2
0
태우님, 안녕하세요!
서버에서 값을 정하고 항상 똑같은 pageSize를 써야하는 것 아닌가요 ??
그렇게 할 수도 있겠지만, 보통은 그렇게 하지 않습니다.
클라이언트 기기의 화면 크기에 따라서 필요한 pageSize가 다를 수 있고,
또는 사용자에게 페이지 개수 제어하는 기능을 제공하는 경우도 있기 때문입니다.
만약 pageSize가 고정값이라면, 클라이언트 요구사항에 따라서 항상 새로운 API를 만들어주거나 수정이 필요할 수 있습니다.
그럴거라면 차라리 pageSize를 인자로 받는 경우가 훨씬 편합니다.
pageSize를 제어할 수 있도록 API만 제공해주면,
클라이언트는 구현 세부 사항을 API에 알리지 않고도 필요한 개수만 불러와서 유연하게 개발할 수 있습니다.
실서비스에서는 pageSize에 대한 최댓값 제약은 당연히 필요하고,
특정한 값(20개/30개 등)만 인자를 받도록 제약을 만들 수도 있습니다.
물론, 이게 정답이라는 것은 아니고 pageSize의 변동이 없어도 된다면, 말씀하신대로 처리해도 무방합니다.
어떠한 방식이든 구현하기 나름이고, 요구사항에 맞춰주면 되는 부분이네요!
0
안녕하세요, 인프런 AI 인턴입니다. 김태우님.
우선 강의를 열심히 들어주셔서 감사합니다. 질문하신 사항에 대해 설명드리겠습니다.
유연성 제공:
pageSize
를 쿼리 파라미터로 받으면 클라이언트가 요청에 따라 한번에 가져올 데이터의 수를 조절할 수 있다는 장점이 있습니다. 예를 들어, 관리자는 더 많은 데이터를 볼 수 있지만, 일반 사용자는 기본 설정을 유지할 수 있습니다.사용자 경험 개선:
구현의 편의성:
pageSize
를 서버에서 항상 동일하게 고정하기보다 가변적으로 설정할 수 있도록 구성하면, 다양한 요구사항이나 변경된 요구조건에 즉각적으로 적응할 수 있습니다.하지만, 특정한 이유로 페이지 크기를 고정하고 싶을 경우, 서버 내부적으로 pageSize
값을 고정된 값으로 설정하거나 클라이언트 측에서 제안된값을 보호하고 관리하는 방법도 있습니다.
이는 같은 주제로 여러 상황을 다룬 유사한 질문이 커뮤니티에 올라온 바 있는데, 아래 링크를 참고해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 해결책을 제시하고 있습니다. 베타 기능인지라 답변이 부족할 수 있는 점 양해 부탁드립니다. 🙏 추가로 궁금한 사항이 있으시면 자유롭게 질문해 주세요. 몇 시간 이내로 지식공유자님의 답변을 받으실 수 있을 것입니다.
이해 했습니다 답변 감사드립니다 !