← 질문 목록
#139깊이 0
동적 조건이 많을 때 문자열 쿼리는 왜 약한가?
조건을 문자열로 이어 붙이면 문법과 타입 오류를 실행 전까지 놓치기 쉽다. QueryDSL은 타입이 있는 식을 조합해 많은 오류를 컴파일 때 드러낸다.
| 기준 | 문자열 | QueryDSL |
|---|---|---|
| 조건 | 문자열 결합 | 식 조합 |
| 오류 | 실행 때 | 컴파일 중심 |
| 변경 | 이름 추적 | 타입 추적 |
선택 조건을 작은 BooleanExpression으로 나누면 필요한 식만 조합할 수 있다. 공통 조건도 재사용해 조회 의도를 읽기 쉽게 만든다.
타입 안전성이 SQL의 정확성과 성능까지 보장하지는 않는다. 조인 수, 인덱스, fetch join, 실행 계획은 생성된 쿼리로 따로 검증해야 한다.
Q 타입 생성과 빌드 설정이라는 비용이 있다. 단순 CRUD에는 파생 쿼리가 더 작고 복잡한 검색과 통계 조회에서 이점이 커진다.