쿼리를 자바코드로 작성할 수 있게 도와주는 기술이다.
사용하는 대표적인 이유는 자바코드로 작성하기 때문에 문법오류를 컴파일 시점에 잡아준다는 점이다.
https://www.youtube.com/watch?v=zMAX7g6rO_Y&list=WL&index=2&t=108s
감사합니다 (__)

일반적으로 QueryDsl을 사용하기 위해선 다음과 같이 복잡한 인터페이스 생성 및 상속 관계가 필요하다. 이는 코드의 복잡도를 올리는데 사실 JPAQueryFactory만 있다면 extends / implements 없이도 문제 없이 사용할 수 있다.
(프로젝트에선 파일이 많지도 않고, 공부에 의의를 두어 위의 사진처럼 관계를 설정하여 사용하였다.)
Before은 코드 구현을 목표로만 생각하여 짠 코드이기에 규칙도 없고, UserRepository인데 Product Table까지 직접 손댄다..
이런 괴상한 짓을 Refactoring하였고, 거기에 더해 BooleanExpression을 이용하여 조건절에 들어갈 조건을 메서드화 시켜 쿼리를 한눈에 예측하기 쉽게 Refactoring 하였다.
Before