강의

멘토링

로드맵

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

mapth2357님의 프로필 이미지
mapth2357

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

스프링 데이터 JPA 적용2

ext["hibernate.version"]=5.6.5.Final 관련

작성

·

1K

0

===================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
build.gradle은 강의 교안과 같이 아래와 같은 상황이며, 이 중에서 ext["hibernate.version"]=5.6.5.Final에 대해서 질문드리고자 합니다.

plugins {
   id 'org.springframework.boot' version '2.6.5'
   id 'io.spring.dependency-management' version '1.0.11.RELEASE'
   id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
   compileOnly {
      extendsFrom annotationProcessor
   }
}

ext["hibernate.version"] = "5.6.5.Final"

repositories {
   mavenCentral()
}

dependencies {
   implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
   implementation 'org.springframework.boot:spring-boot-starter-web'



   //JdbcTemplate 추가
   //implementation 'org.springframework.boot:spring-boot-starter-jdbc'
   //H2 데이터베이스 추가
   runtimeOnly 'com.h2database:h2'
   //MyBatis 추가
   implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
   //JPA, 스프링 데이터 JPA 추가
   implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

   compileOnly 'org.projectlombok:lombok'
   annotationProcessor 'org.projectlombok:lombok'
   testImplementation 'org.springframework.boot:spring-boot-starter-test'

   //테스트에서 lombok 사용
   testCompileOnly 'org.projectlombok:lombok'
   testAnnotationProcessor 'org.projectlombok:lombok'
}

tasks.named('test') {
   useJUnitPlatform()
}

 

gradle 문법을 찾아보니, build.gradle 내에서 "hibernate.version" 의 이름을 가진 변수명(?)이 참조하는 요소가 ext["hibernate.version"] = "5.6.5.Final" 임을 확인했습니다.

 

그런데, 여기에서는 hibernate.version을 참조하는 변수(?)가 없음에도 불구하고 어떻게 gradle이 인식하는지 문의드립니다.

 

작은 질문 추가) 위에서 마땅한 용어가 없어서, "변수" 라는 용어를 썼는데, 적절한 용어가 있는지도 추가로 문의드립니다!

답변 2

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. mapth2357님

첫 줄에 스프링 부트 관련된 플러그인들을 사용하는데요.

이 플러그인 안에서 해당 속성을 찾아서 사용합니다.

https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-dependencies/build.gradle

ext = ExtraPropertiesExtension의 줄임말인데요. 프로젝트 전반에서 참조할 수 있는 변수를 선언하게 됩니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요.

build.gradle에서 ext[“hibernate.version”]=5.6.5.Final를 선언하면, 이는 build.gradle에 정의된 객체(?)로써 사용됩니다. 이후에 다른 의존성 구문에서 compile하거나 runtime 중에 해당 버전의 Hibernate를 참조할 때, 이 객체를 참조하게 됩니다. 이렇게 ext를 통해 추가한 객체는 build.gradle 전체에서 참조가 가능하기 때문에 활용도가 높습니다.

변수 대신 객체라는 용어를 사용해도 괜찮습니다. 형태가 객체와 유사한데다가, build.gradle에서는 일반적으로 ext라는 ‘확장’ 구문을 통해 선언되고 사용되기 때문이죠.

도움이 되셨길 바랍니다. 좋은 하루 보내세요!

mapth2357님의 프로필 이미지
mapth2357

작성한 질문수

질문하기