Sptring Data JPA가 제공해주는 CRUD 메서드 및 쿼리 메서드 기능을 사용하더라도, 원하는 조건의 데이터를 수집하기 위해서는 JPQL을 작성하는 경우도 있다. 간단한 로직을 작성하는데 큰 문제는 없으나, 복잡한 로직의 경우 개행이 포함된 쿼리 문자열이 길어질 수 있다. JPQL문자열에 오타 혹은 문법적인 오류가 발생했을 때, 정적 쿼리라면 application 로딩 시점에 이를 발견할 수 있으나 그 외에는 RunTime 시점에서 에러가 발생한다.
이러한 문제들은 어느정도 해소해주는 것이 QueryDSL이다. QueryDSL을 사용했을 때의 장점은 다음과 같다.
QueryDSL을 적용하려면 설정이 까다롭다는 단점이 있긴 하지만, 설정 이후의 리턴을 생각하면 나쁘지 않다고 생각된다. 설정 방법은 참고한 블로그에서 확인할 수 있다.
https://tecoble.techcourse.co.kr/post/2021-08-08-basic-querydsl/