-
2024 - QueryDSL 근황Spring Boot/JPA 2024. 8. 22. 22:24
QueryDSL은 동적 쿼리를 type-safe하게 작성할 수 있도록 도와주는 오픈소스 JPQL 쿼리 빌더이다.
3년 전부터 큰 릴리스가 없어, 해외에서는 JOOQ라는 기술보다 사용 선호도가 낮으나,
우리나라에서는 채용 시장과 기업에서 주류로 자리 잡고 있다.
그 이유로는,
인프런 김영한 님의 인터넷 강의로 QueryDSL의 입문 문턱이 상대적으로 낮고,
대기업에서 수백만 트래픽도 안정적으로 운영할 수 있다는 검증과 노하우가 세미나로 공유되어
Java/Spring/JPA를 사용하고 있다면 필수 기술로 여겨지고 있다.
그런데
- 최근 주변에서 QueryDSL 이외의 쿼리빌더를 도입하며 트러블슈팅 문의가 오픈카톡에 채팅으로 올라오곤 한다.
- 현재 QueryDSL에 어떤 일이 벌어지는지 알아본다.
[JOOQ, vs QueryDSL 검색 비교]
[Hibernate 커미터로 유명한 Vladmihalcea의 유튜브에 QueryDSL 관련 문답]
- 최근 QueryDSL이 3년 이상 업데이트가 안되어 죽었다고 평가 됨 (- minor 패치만 뜨문뜨문 진행중)
- 최신 hibernate 버전과 호환이 되지 않는 이유로 여러 회사에서 대안 찾음
- OpenFeign팀에서 fork 떠서 직접 업데이트 진행중 (https://github.com/OpenFeign/querydsl)
- 우아한형제들 손권남 님이 해당 프로젝트 fork한 것 포착됨 (https://kwonnam.pe.kr/wiki/java/querydsl)
- OpenFeign팀에서 fork 떠서 직접 업데이트 진행중 (https://github.com/OpenFeign/querydsl)
- 코틀린 + Spring 조합으로 QueryDSL하면 Qclass때문데 kapt라는 플러그인을 써야하는데 kapt가 maintenance 모드에 들어감 (참고 - https://kotlinlang.org/docs/kapt.html)
- 위의 이유로 몇몇 회사에서 미리 대안 찾는 움직임 보임
- JOOQ 도입 - 카카오 개발자가 현업에 JOOQ 도입하고 인터넷 강의 출시 (https://www.inflearn.com/course/실전-jooq-타입세이프-쿼리)
- JDSL(라인에서 제작한 오픈소스) 도입 -(https://spoqa.github.io/2024/05/03/transfer-jdsl.html) / https://www.youtube.com/watch?v=-Kdr6qq6uJI)
- Entity는 Java로 만들어 Kotlin과 혼용하는 정책 : 인프런 - https://tech.inflab.com/20240110-java-and-kotlin/
- 위의 이유로 몇몇 회사에서 미리 대안 찾는 움직임 보임
2024.11
- OpenFeign 팀에서 Kapt를 KSP로 할 수 있게 6.9버전부터 시도중 (https://github.com/OpenFeign/querydsl/issues/638)결론
- 새로 진행하는 프로젝트면 OpenFeign팀 querydsl 고려해보고
- 코프링이면 kapt 어떻게 해결되나 유심히 살펴보자- 시간이 허락하면 JOOQ나 blaze persistence를 사용해보자
반응형'Spring Boot > JPA' 카테고리의 다른 글
QueryDsl projections 자바 Record에 적용하기 (1) 2024.04.23 JPA 주의점 (1) - OSIV false 설정 (open-in-view) (0) 2024.04.19 [JPA] 간단하게 OneToMany 데이터 API 구현하기 - @Embeddable, @Embedded, @ElementCollection 활용하기 (1) 2023.10.15 [JPA] Repository단에 Transactional을 선언하는 이유 (0) 2023.10.05 JPA 애플리케이션 데이터베이스 초기화 (0) 2023.09.17