인프런 커뮤니티 질문&답변

수하님의 프로필 이미지
수하

작성한 질문수

실전! Querydsl

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

작성

·

54

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번 선택지가 더 깔끔한 거 아닌가요 ?

답변 1

1

안녕하세요, 인프런 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

감사합니다.

수하님의 프로필 이미지
수하

작성한 질문수

질문하기