반응형

DynamicQuery 2

[Spring JPA 공식 문서 기반] 23. 동적 쿼리는 어디까지 허용해야 할까

22편에서는 QueryDSL이“문자열 JPQL의 한계를 넘어, 타입 안전한 쿼리 표현을 제공하기 위해 등장했다”는 배경을 살펴봤습니다.그 다음으로 반드시 마주치는 질문이 있습니다.“그럼 동적 쿼리는 어디까지 허용하는 게 맞을까?”이번 글에서는 이 질문에 대해 Spring JPA 공식 문서 흐름에 맞춰 정리해보겠습니다.1. 동적 쿼리는 왜 필요해졌을까실무에서 조회 조건은 고정되어 있지 않습니다.검색어는 있을 수도 없을 수도 있고날짜 범위는 선택 사항이며상태 값은 복수 선택이 가능이런 요구사항은“동적으로 쿼리를 조합해야 한다”는 결론으로 자연스럽게 이어집니다.QueryDSL은 이 요구를if-else가 아닌 Predicate 조합으로 풀어낼 수 있게 해줍니다.2. 동적 쿼리는 언제부터 위험해질까동적 쿼리 자체..

[Spring JPA 공식 문서 기반] 22. QueryDSL은 왜 필요해졌을까

21편에서는 Spring Data JPA의파생 쿼리 메서드가 어디까지는 안전하고, 어디서부터 위험해지는지를 살펴봤습니다.그 흐름에서 자연스럽게 등장하는 질문은 이것입니다.“그럼 복잡한 조회는 도대체 뭘로 해야 하지?”이 질문에 대한 Spring 생태계의 대표적인 답이 바로QueryDSL입니다.1. QueryDSL은 어떤 문제에서 출발했을까QueryDSL이 등장한 배경은 아주 명확합니다.파생 쿼리는 길어지고JPQL 문자열은 깨지기 쉽고동적 조건은 if-else 지옥이 된다즉,“조회 조건을 코드로 표현하고 싶다”는 요구가 강해졌습니다.QueryDSL은 이 문제를“타입 안전한 쿼리 모델”로 해결하려는 시도입니다.2. QueryDSL이 해결하려 한 핵심 문제QueryDSL이 해결하려 한 문제는 기술적으로 보면 ..

반응형