방법 : 쿼리를 문자열 변수에 담고, 각 조건을 if문으로 제어한다. 단점 : 에러 발생 확률이 너무 높고 소스가 너무 길어짐
JPA에서 표준으로 제공하는 Criretia로 만든다. 스펙이 존재하긴 하나 너무 복잡하고 쿼리가 한 번에 떠오르질 않아 유지보수, 즉 실무에 효율적이지 못함
결론은, query dsl를 써라. 모두 Java 코드이기 때문에 컴파일 시점에서 문법 오류를 모두 잡아준다.