컨트롤러의 파라미터로 Pageable를 직접 받을까요 혹은 page, size, sort등을 따로 받을까요?
안녕하세요!
컨트롤러의 파라미터로 Pageable을 직접 받을 수 있으나 @PageableDefault로는 1가지 기준으로만 정렬이 가능한 것 같은 제약사항이 있는 것으로 알고 있습니다.
@SortDefault로 여러개의 정렬 조건을 추가할 수 있다고는 하나 파라미터에 어노테이션이 너무 많아지나..? 싶기도 합니다.
또 만약 page라는 변수명이아니라 pageNo처럼 다른 변수명을 사용할 때의 유연성을 위해서라도 Pageable 인터페이스로 직접 받기보다는 페이징의 각 요소를 받아서 PageRequest 객체를 따로 생성하는 것이 더 나을까요?
토이프로젝트보다 훨씬 복잡한 상황의 현업환경에서는 어떤 방식이 더 자주 사용되는지 궁금합니다!
답변 2
1
안녕하세요. 자프링님
실무에서도 간단한 상황에서는 기존 것을 사용하지만, 상황이 복잡해지면 말씀하신 것 처럼 직접 PageRequest를 생성해서 사용하는 경우가 많습니다.
비슷하게 팁을 알려드리자면 프로젝트를 진행하는 모든 부분에서 기존 것을 최대한 활용하는 것이 좋지만, 우리 프로젝트에 맞지 않는다면, 기존 것을 너무 잡고 있는 것 보다는 우리에게 맞는 방식을 사용하는 것이 더 좋습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요. 컨트롤러의 파라미터로 Pageable을 직접 받을지, 아니면 page, size, sort 등을 따로 받을지에 대해 궁금하시네요.
첫 번째로, Pageable 인터페이스를 컨트롤러의 파라미터로 직접 받는 방법과 @PageableDefault를 사용하여 정렬 기준을 설정하는 방법이 있는데요. @PageableDefault로는 한 가지 기준으로만 정렬할 수 있다는 제약사항이 있습니다. 이 경우, 여러 개의 정렬 조건이 필요한 상황에서는 @SortDefault를 사용하여 추가적인 정렬 조건을 지정할 수 있습니다. 그러나, 이렇게 파라미터에 적용되는 어노테이션이 많아지면 가독성이 떨어지는 문제가 있을 수 있습니다.
두 번째로, 다른 변수명을 사용할 때의 유연성을 위해 Pageable 인터페이스로 직접 받는 대신, 페이징의 각 요소를 받아서 PageRequest 객체를 따로 생성하는 방법을 사용하는 것도 고민해볼 만합니다. 이 방식을 사용하면 변수명에 제약이 없어지기 때문에 더 유연하게 사용할 수 있습니다.
실제 현업 환경에서는 어떤 방식이 더 자주 사용되는지에 대해서는 일반화하기 어렵습니다. 각각의 프로젝트나 상황에 따라 다르게 사용될 수 있는데요. 토이 프로젝트에서는 가독성이나 유연성을 우선시하여 더 편한 방식을 선택하시는 것이 좋습니다. 그리고 실제 현업 환경에서는 프로젝트의 규모와 요구사항에 따라 선택하게 될 것입니다.
결론적으로, 파라미터로 Pageable을 직접 받을지 아니면 Pageable 인터페이스로부터 PageRequest 객체를 생성하여 사용할지는 개인의 선호나 프로젝트의 규모와 요구사항에 따라 다를 수 있습니다. 사실, 어느 쪽을 선택하더라도 동작하는 것은 동일하기 때문에, 편한 방식을 선택하시면 될 것 같아요. 좋은 개발 경험이 되시길 바랄게요!
SpringBoot 4.X에서의 Querydsl 설정
0
91
2
querydsl 오픈소스에 대한 질문
0
72
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
109
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
318
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
71
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
160
1
querydsl sum() 메서드 없어요.
0
159
2
build 디렉터리 생성
0
140
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
114
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
92
1
오타 제보 드립니다.
0
73
2
벌크 연산과 flush, clear
0
76
1
Run As Intellij 로 변경시 Q타입 import 불가
0
88
1
QHello import하기 문제 발생
0
147
2
등록된 함수 보는법(H2Dialect) 질문
0
68
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
199
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
201
1
querydsl 설정 문제
0
222
2
quey dsl 설정부분
0
158
2
count 쿼리 관련 질문입니다!
0
75
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
89
1
답변부탁드리겠습니다.
0
90
2
(OrderSpecifier)관련 내용 어디있을가요
0
66
1
중급문법 벌크연산에서
0
83
2





