inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

스프링 데이터 JPA 적용2

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

1030

mapth2357

작성한 질문수 8

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이 인식하는지 문의드립니다.

 

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

spring

답변 2

2

김영한

안녕하세요. mapth2357님

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

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

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

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

감사합니다.

0

인프런 AI 인턴

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

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

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

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

설정 정보 없이 임베디드 데이터베이스 생성

0

15

1

RepositoryTest의 패키지 위치가 domain인 이유

0

37

2

REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!

0

32

1

update()에 사용하는 setter 질문드립니다.

0

49

1

SQL 중심적 개발의 문제점에 대한 질문

0

78

1

혹시 Containing 을 안쓰신 이유가 있을까요?

0

89

2

[공유] 스프링부트 4.x 버전 mybatis 연동

0

184

1

@repository 어노테이션

0

93

3

ItemService

0

59

1

논리 커밋, 물리 커밋 질문드립니다.

0

54

1

내부 트랜잭션 커밋은 필수인가요?

0

57

1

프록시 커넥션 객체를 반환할 때 생성하는건가요?

0

55

1

Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)

2

180

2

JPQL 대신 네이티브 쿼리를 사용해야 하는 경우

0

81

1

@EventListener(ApplicationReadyEvent.class) 관련

0

90

1

트랜잭션 동기화 매니저와 데이터 소스

0

77

1

DB 관련 강의 개설 계획은 없으신건가요?

0

133

2

물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요

0

95

1

스프링 3 버전 이상 rollbackFor 변경된듯요

1

114

1

트랜잭션 전파 질문.

0

87

1

프로젝트 오픈 에러

0

126

1

외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다

0

84

2

같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환

0

74

1

h2 인메모리 테스트중 예약어 충돌날 경우 대처방법

0

105

1