게시글 목록 리스트를 가져올 때, 필요한 Param은 5가지이다.
sorting을 page와 size와 함께 묶어 Pageable로 받을 수도 있었으나 인기순 정렬도 있기 때문에 따로 뺐다.
우선 고려해야할 사항은 다음과 같다.
사실 가장 간단한 방법은 중첩 if 문 써서 각 경우별로 쿼리 적용하면 될 것 같은데 그렇게 되면 너무 하드코딩이 되어 다른 방법이 없는지 찾아보았다.
@Query 어노테이션을 사용하게 되면, 결국 쿼리가 고정되게 되는데 정적으로 쿼리를 생성해줘야겠다고 생각이 들었다.
https://tecoble.techcourse.co.kr/post/2022-10-11-jpa-dynamic-query/
https://tecoble.techcourse.co.kr/post/2021-08-08-basic-querydsl/
https://velog.io/@jkijki12/Spring-QueryDSL-%EC%99%84%EB%B2%BD-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
https://tychejin.tistory.com/415
이 블로그를 보고 다양한 동적 쿼리 방식이 있다는 걸 알게 되었다.
그 중에서 Querydsl을 사용해서 쿼리를 생성하려고 한다.
하지만 Querydsl를 사용해서 구현하는 코드나, Querydsl를 사용하지 않는 코드나 별다른 점이 없어 보였다.
오히려 Querydsl를 사용했을 때, 코드의 복잡도가 올라가는 것 같아서 Querydsl를 사용하지 않고 @Query와 JPA 메서드를 통해 구현을 했다.