SPRING

[QueryDsl] QueryDSL의 BooleanBuilder

boudle 2025. 4. 23. 15:07

QueryDSL을 쓰다 보면 동적으로 WHERE 조건을 조립해야 할 때가 많습니다.
예를 들어 검색 조건이 유동적으로 들어오거나, 여러 필터를 선택적으로 적용해야 할 때가 있죠.

이럴 때 사용하는 게 바로 **BooleanBuilder**입니다.

BooleanBuilder란?

BooleanBuilder는 QueryDSL의 Predicate들을 유연하게 조합할 수 있도록 도와주는 조건 조립용 빌더 객체입니다.

 

왜 BooleanBuilder를 쓰는가?

보통 검색 API는 다양한 필터 조건을 입력받습니다.

  • 이름 검색
  • 나이 필터
  • 지역 선택
  • 가입일 기간

이처럼 조건이 전부 선택적일 때,
만약 각각의 조건마다 쿼리를 분기 처리하려면 코드가 지저분해지고 중복이 많아집니다.

👉 BooleanBuilder를 쓰면?

조건이 있는 것만 .and()로 붙여서 한 줄씩 깔끔하게 조립 가능합니다.
→ 동적 쿼리 처리에 특화된 구조를 만들 수 있습니다.

 

장점설명

 

✅ 동적 where 조건 입력값 유무에 따라 조건을 유연하게 붙일 수 있음
✅ 가독성 향상 조건 분기를 if문으로 깔끔하게 관리
✅ 실무에 필수 검색 기능, 필터링 API에 필수적

 

 

QueryDSL의 BooleanBuilder는 실무에서 동적 조건 쿼리를 작성할 때 정말 강력한 도구입니다.
조건이 복잡하거나 선택적으로 들어오는 필터가 많은 경우엔, 반드시 알아두고 써야 할 필수 기술이죠.