java
CHAPTER 54 / 69
읽기 약 2분
FUNCTION
QueryDSL 동적 쿼리
핵심 개념
복잡한 조건 검색을 타입 안전하게 구현하는 QueryDSL. BooleanBuilder 패턴으로 동적 쿼리를 작성한다.
코드 분석
// build.gradle
dependencies {
implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta"
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
}
// UserRepositoryCustom 인터페이스
public interface UserRepositoryCustom {
List<User> searchUsers(UserSearchCondition condition);
}
// UserRepositoryImpl 구현
@RequiredArgsConstructor
public class UserRepositoryImpl implements UserRepositoryCustom {
private final JPAQueryFactory queryFactory;
@Override
public List<User> searchUsers(UserSearchCondition cond) {
QUser user = QUser.user;
BooleanBuilder builder = new BooleanBuilder();
if (StringUtils.hasText(cond.getName())) {
builder.and(user.name.contains(cond.getName()));
}
if (cond.getStatus() != null) {
builder.and(user.status.eq(cond.getStatus()));
}
if (cond.getMinAge() != null) {
builder.and(user.age.goe(cond.getMinAge()));
}
return queryFactory
.selectFrom(user)
.where(builder)
.orderBy(user.createdAt.desc())
.fetch();
}
}AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude
무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6
이 Spring 'QueryDSL 동적 쿼리' 코드에서 DI 관련 버그·순환 참조·트랜잭션 누수를 찾아서 수정해줘.
ChatGPT
무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro
'QueryDSL 동적 쿼리'를 Spring Boot 3.x로 구현한 실전 API 코드(컨트롤러+서비스+레포지토리+테스트)를 완성형으로 만들어줘.
Gemini
무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro
이 Spring 'QueryDSL 동적 쿼리' 프로젝트의 빈 구조와 의존성 트리를 전체 분석하고 N+1 쿼리·순환 참조·성능 병목을 정리해줘.
Grok
무료: Grok 4.1 / SuperGrok $30/mo
Spring 'QueryDSL 동적 쿼리' vs Quarkus·Micronaut·Ktor의 동일 기능 구현을 2026년 한국 채용 시장 기준으로 솔직히 비교해줘.
⭐ 이것만 기억하세요
QueryDSL 동적 쿼리는 이 3가지만 확실히 잡으세요
1.JPQL 문자열 쿼리는 오타가 런타임에서야 발견되고, 동적 조건 조합이 복잡합니다
2.QueryDSL은 Java 코드로 타입 안전한 쿼리를 작성하며, BooleanBuilder로 동적 조건을 자유롭게 조합합니다
3.다음 챕터에서 Spring Security 기초를 배웁니다
공유하기
진행도 54 / 69