본문 바로가기

Dev/etc

Query DSL

정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해주는 프레임워크.

문자영로 작성하거나 XML 파일에 쿼리를 작성하는 대신, Querydsl이 제공하는 fluent API 를 이용해서 쿼리를 생성 가능

 

Querydsl은 SQL, JPQL을 코드로 작성할 수 있도록 도와주는 오픈소스 빌더 API

 

장점

  1. IDE의 코드 자동 완성 기능을 사용.
  2. 문법적으로 잘못된 쿼리를 허용하지 않음.
  3. 컴파일 시점에 문법 오류 발견.
  4. 도메인 타입과 프로퍼티를 안전하게 참조.
  5. 도메인 타입의 리팩토링을 더 잘할 수 있음.
  6. 동적 쿼리 만들기 쉬움.

 

  1. 타입 안정성
    도메인 타입의 프로퍼티를 반영해서 생성한 쿼리 타입을 이용해서 쿼리를 작성.
    완전히 타입에 안전한 방법으로 함수/메서드 호출이 이루어짐.
  2. 일관성
    기반 기술에 상관없이 쿼리 경로와 오퍼레이션은 모두 동일
    Query I/F는 공통의 상위 I/F를 갖음.
    모든 쿼리 인스턴스는 여러 차례 재사용 가능
    쿼리 실행 이후 페이징 데이터와 프로젝션 정의는 제거됨.

 

JPA 쿼리

 

Spring Data Jpa를 이용해보면, 기본으로 제공해주는 @Query로는 다양한 조회 기능을 사용하기에 한계점이 존재.

이 문제를 해결하기 위해 정적타입을 지원하는 조회 프레임워크 Querydsl 사용.

 

 

'Dev > etc' 카테고리의 다른 글

Gradle  (0) 2021.09.28
Swagger  (0) 2021.09.27
DDD & TDD  (0) 2021.09.27
JWT Token  (0) 2021.09.24
OSI 7 Layer  (0) 2021.09.24