패스잇
백엔드 개발 · 중급

JPQL과 QueryDSL의 차이점과 각각의 장단점에 대해 설명해주세요.

힌트 · 타입 안전성, 동적 쿼리, 학습 곡선을 비교해보세요.

JPQLQueryDSLORM타입 안정성동적 쿼리

모범답안

JPQL과 QueryDSL은 JPA를 사용할 때 쿼리를 작성하는 방식입니다. JPQL은 SQL과 유사한 문자열 기반의 쿼리 언어이고, QueryDSL은 자바 코드로 쿼리를 작성할 수 있게 해주는 프레임워크입니다.

가장 큰 차이점은 타입 안전성입니다. JPQL은 컴파일 시점에 오류를 잡기 어렵지만, QueryDSL은 컴파일 시점에 타입 오류를 발견할 수 있습니다.

동적 쿼리 측면에서는 QueryDSL이 훨씬 강력합니다. 조건에 따라 쿼리를 유연하게 변경하기 쉽습니다. JPQL은 문자열을 조합해야 해서 복잡해질 수 있습니다.

학습 곡선은 JPQL이 더 낮습니다. SQL에 익숙하다면 쉽게 배울 수 있습니다. QueryDSL은 별도의 학습이 필요하지만, 익숙해지면 생산성이 높아집니다.

간단히 요약하면, JPQL은 배우기 쉽지만 타입 안전성이 떨어지고 동적 쿼리에 약합니다. QueryDSL은 학습 곡선이 있지만 타입 안전성이 높고 동적 쿼리에 강력합니다. 프로젝트의 복잡도와 요구사항에 따라 적절한 기술을 선택하는 것이 중요합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 JPA / ORM 면접 질문

← JPA / ORM 면접 질문 전체 보기