728x90 Backend/JPA & QueryDSL6 [QueryDSL] Projections(Dto 조회)와 @QueryProjection Projections(Dto 조회)와 @QueryProjection 특정 Entity를 조회할 때 Entity의 모든 값들이 필요하지 않은 경우가 있습니다. 예를 들면 게시판 목록을 보여줄 때 게시판의 내용(contents)이 필요하지 않고, 게시판의 제목, 작성자, 작성일과 같이 일부 데이터만 필요한 경우가 있습니다. 때문에 게시판 목록 조회 시 게시판 내용과 같은 데이터들을 DB에서 같이 조회해 오는 것은 불필요한 자원낭비가 되어 성능이 저하되는 원인이 됩니다. 이러한 문제를 해결하기 위해 QueryDSL에서는 불필요한 값들은 조회하지 않고, 필요한 값들만 조회할 수 있도록 성능을 최적화시켜 주는 Projections을 제공합니다. Projections은 쿼리 결과를 원하는 형식(Dto)으로 변환하기.. 2023. 7. 16. [JPA] JPA 관련 설정(properties, yml) JPA 관련 설정(properties, yml) Hibernate ORM 6.1.7.Final User Guide (jboss.org) Hibernate ORM 6.1.7.Final User Guide Fetching, essentially, is the process of grabbing data from the database and making it available to the application. Tuning how an application does fetching is one of the biggest factors in determining how an application will perform. Fetching too much dat docs.jboss.org 1. 쿼리 로그 관련 설.. 2023. 7. 15. [JPA, QueryDSL] JPA와 QueryDSL의 exists 성능 테스트 JPA와 QueryDSL의 exists 성능 테스트 이번에 회사 업무를 진행하면서 exists 사용할 일이 생김 겸, 성능이 어떻게 다른지, 어떻게 사용하는 것이 올바른 방법인지 테스트를 진행했습니다. 우선 아시다시피 QueryDSL에서 제공하는 exists는 성능이 좋지 않다는 글들을 많이 보셨을 겁니다. 저 또한 향로님이 작성하신 글을 보고 QueryDSL에서 exists를 사용할 일이 생길 경우 직접 쿼리를 만들어 사용해야 한다고 알고 있습니다. 다만 저는 직접 눈으로 보고 확인해 봐야 직성이 풀리는 성격이라 몇 가지 쿼리들을 직접 테스트를 진행해 봤습니다. 코드는 깃허브에서 확인하실 수 있습니다. 총 5가지의 테스트를 진행했으며 그에 따른 실행 시간을 측정하였습니다. QueryDSL의 exists.. 2023. 7. 15. [QueryDSL] Spring Boot 3.X 버전에 따른 QueryDSL 설정 Spring Boot 3.X 버전에 따른 QueryDSL 설정 1. Spring Boot 2.X 설정 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.6.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' //==== querydsl 추가 start ==== id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" //==== querydsl 추가 end ==== id 'java' } group = 'study' version = '0.0.1-SNAPSHOT' sour.. 2023. 7. 15. 이전 1 2 다음 728x90