<TIL> 108. queryDSL vs JPQL '@Query'

YUJIN LEE·2023년 5월 4일
0

개발log

목록 보기
100/149

QueryDSL의 장점

  1. 타입 세이프: 컴파일 시점에 오류를 발견할 수 있어, 쿼리 작성 오류를 줄인다.
  2. 코드 자동완성: IDE에서 코드 자동완성을 지원해 쿼리 작성이 더 쉽고 빠르다.
  3. 동적 쿼리 작성: 쿼리 조건이 복잡하거나 선택적인 경우, 동적으로 쿼리를 생성하는데 유용하다.

JPQL '@Query' 장점

  1. 간결성: 쿼리를 짧고 정확한 문자열로 작성할 수 있어, 간단한 쿼리에 적합
  2. SQL에 가까운 문법: SQL 문법과 유사하므로, SQL을 알고 있는 개발자에게 익숙함
  3. 직관성: 쿼리를 한눈에 이해하기 쉽다.

두 방식을 쓸 때의 고려사항

  1. 쿼리의 복잡성
    쿼리가 복잡하고 동적인 경우 QueryDSL 더 유리
    반면, 쿼리가 간단하면 JPQL이 더 간결하고 직관적
  2. 유지보수
    QueryDSL은 타입 세이프해 리팩토링 시 오류 발견 쉽고,
    자동완성 지원으로 인해 유지보수가 더 쉽다.
  3. 성능
    두 방식의 성능차이는 거의 없다.

쿼리의 복잡성 & 유지보수성이 중요한 요소 -> QueryDSL
간단한 쿼리 & 직관성 -> JPQL '@Query'

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글