inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

Querydsl 버전 별 build.gradle 설정 파일에 대해 궁금한 점이 있습니다.

156

수하

작성한 질문수 31

0

자주 하는 질문 + 강의 자료를 종합해봤을 때 Querydsl 설정이 크게 다음 3가지로 나뉘는 것 같더라고요.

 

  1. 2.x 버전 / dependencies 바깥에 설정

plugins {
    id  'org.springframework.boot' version '2.2.2.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
		 //querydsl 추가
    id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
    id 'java'
 }


 //querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"
 querydsl {
    jpa = true
    querydslSourcesDir = querydslDir
 }
 sourceSets {
    main.java.srcDir querydslDir
 }
 configurations {
    querydsl.extendsFrom compileClasspath
 }
 compileQuerydsl {
    options.annotationProcessorPath = configurations.querydsl
}

 

  1. 2.x 버전 / dependencies 안에 설정


dependencies {

	//Querydsl 추가
	implementation 'com.querydsl:querydsl-jpa'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"

}


clean {
	delete file('src/main/generated')
}

 

  1. 3.x 버전 / dependencies 안에 설정


dependencies {
   //Querydsl 추가
   implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
   annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
   annotationProcessor "jakarta.annotation:jakarta.annotation-api"
   annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}


clean {
   delete file('src/main/generated')
}

 

 

2.x 의 경우 선택지가 2가지가 되는 데 왜 강의에선 1번 케이스를 선택했던 건지 궁금합니다!

2번 선택지가 더 깔끔한 거 아닌가요 ?

java jpa

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

수하님, Querydsl 설정에 대해 질문해주셨네요! Querydsl을 사용할 때, build.gradle 설정은 버전과 프로젝트 구조에 따라 조금씩 달라질 수 있습니다. 여기서 언급하신 선택지들은 각자 장단점이 있으며, 강사님이 특정 방법을 선택하신 이유도 상황에 맞춰 더 적합하다고 판단하셨기 때문일 가능성이 큽니다.

  1. 2.x 버전 under plugins: 이 설정은 Querydsl 라이브러리를 플러그인으로 추가해서 사용할 수 있도록 설정하는 방식입니다. 이 방식은 Querydsl 기능을 빌드 프로세스와 더 잘 통합하고, 전체 프로젝트 빌드 구조의 여러 측면을 쉽게 조정할 수 있는 유연성을 제공합니다.

  2. 2.x 및 3.x 버전 under dependencies: 이 방식은 최종적인 종속성 관리에만 집중합니다. 단순히 추가된 라이브러리를 사용할 수 있도록 하며, 빌드 구성 요소와 통합은 따로 신경 쓰지 않아도 되기에 설정이 단순해질 수 있습니다. 다만, 각자의 프로젝트에 따라 플러그인 방식보다 빌드 유연성이 떨어질 수 있습니다.

  3. 강의에서 선택한 이유: 강사님이 1번 설정을 선택한 이유는, 아마 강의에서 다루는 전체 학습 목표 및 테스트 환경에서 이 방식이 가장 안정적이라고 판단하여서일 것입니다. 특히, 플러그인 방식은 환경 관리를 용이하게 하고, 빌드 시 특정 작업을 적용하는 데 유리하다는 장점이 있어, 교육적으로 더 나은 선택이 되었을 수 있습니다.

따라서, 두 방식 모두 유효한 방법이며, 프로젝트의 요구사항과 개인의 선호에 따라 적합한 방법을 선택하면 됩니다. 강의의 목적이 특정 환경에서 안정적으로 기능을 작동시키는 것이라면, 그 환경에 맞게 최적의 설정을 추천하는 것일 테니 너무 걱정하지 않으셔도 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

기타 관련 링크는 다음과 같습니다:
- Querydsl 설정 관련 기존 질문 링크 #1
- Querydsl 설정 관련 기존 질문 링크 #2

감사합니다.

SpringBoot 4.X에서의 Querydsl 설정

0

122

2

querydsl 오픈소스에 대한 질문

1

87

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

118

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

336

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

78

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

168

1

querydsl sum() 메서드 없어요.

0

165

2

build 디렉터리 생성

0

147

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

119

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

97

1

오타 제보 드립니다.

0

76

2

벌크 연산과 flush, clear

0

81

1

Run As Intellij 로 변경시 Q타입 import 불가

0

93

1

QHello import하기 문제 발생

0

152

2

등록된 함수 보는법(H2Dialect) 질문

0

73

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

203

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

207

1

querydsl 설정 문제

0

225

2

quey dsl 설정부분

0

160

2

count 쿼리 관련 질문입니다!

0

77

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

92

1

답변부탁드리겠습니다.

0

92

2

(OrderSpecifier)관련 내용 어디있을가요

0

67

1

중급문법 벌크연산에서

0

84

2