QueryDSL을 쓰다 보면 동적으로 WHERE 조건을 조립해야 할 때가 많습니다.
예를 들어 검색 조건이 유동적으로 들어오거나, 여러 필터를 선택적으로 적용해야 할 때가 있죠.
이럴 때 사용하는 게 바로 **BooleanBuilder**입니다.
BooleanBuilder란?
BooleanBuilder는 QueryDSL의 Predicate들을 유연하게 조합할 수 있도록 도와주는 조건 조립용 빌더 객체입니다.
왜 BooleanBuilder를 쓰는가?
보통 검색 API는 다양한 필터 조건을 입력받습니다.
- 이름 검색
- 나이 필터
- 지역 선택
- 가입일 기간
이처럼 조건이 전부 선택적일 때,
만약 각각의 조건마다 쿼리를 분기 처리하려면 코드가 지저분해지고 중복이 많아집니다.
👉 BooleanBuilder를 쓰면?
조건이 있는 것만 .and()로 붙여서 한 줄씩 깔끔하게 조립 가능합니다.
→ 동적 쿼리 처리에 특화된 구조를 만들 수 있습니다.
장점설명
| ✅ 동적 where 조건 | 입력값 유무에 따라 조건을 유연하게 붙일 수 있음 |
| ✅ 가독성 향상 | 조건 분기를 if문으로 깔끔하게 관리 |
| ✅ 실무에 필수 | 검색 기능, 필터링 API에 필수적 |
QueryDSL의 BooleanBuilder는 실무에서 동적 조건 쿼리를 작성할 때 정말 강력한 도구입니다.
조건이 복잡하거나 선택적으로 들어오는 필터가 많은 경우엔, 반드시 알아두고 써야 할 필수 기술이죠.
'SPRING' 카테고리의 다른 글
| @RequestBody는 왜 Servlet이나 Spring Filter에서 사용할 수 없을까? (1) | 2025.05.19 |
|---|---|
| [Spring]QueryDSL의 Expression이란? (0) | 2025.04.25 |
| QueryDSL에서 문자열 포함 검색 (LIKE %keyword%) 처리 방법 정리 (0) | 2025.04.22 |
| [Spring] Spring에서 에러 명칭을 관리하는 방법(에러처리) (0) | 2025.04.08 |
| [Spring] 테스트 코드에 config적용법 (0) | 2024.09.10 |