이동욱 저자님의 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'라는 책이 내가 공부하려했던
Spring-boot, JPA, JUnit, OAuth2.0, AWS까지 모두 포함이 되어있어 적절하다 판단해서 시작을 했다.
하나 어려웠던 점이 있다면 책에 나온 내용은 JUnit4를 사용하고 Spring-boot도 과거에서 지금버전으로 오면서
라이브러리 위치가 달라졌다던가 아니면 사용하는 메소드의 이름이 달라졌다던가 그런점에서 오류가 여러차례
발생해서 수정하려했는데 익숙치가 않아서 좀 어려웠다. (오히려 공부가 된 거 같기도...)
Build Gradle
Gradle의 경우 안드로이드를 하면서 여러차례 써본적이 있지만 'dependency를 추가해서 라이브러리를 가져다 쓴다.'
정도만 알고있었지, 한줄 한줄 분석해보면서 했던적은 이번이 처음인거 같다. 책에서는 gradle의 버전을 4.10.2를 사용했으나 최신 버전은 7.1로 문법적인 부분에서 차이가 좀 존재했다.
먼저, 책에서 나온 Gradle 설정은 다음과 같다.
bulidscript {
ext {
springBootVersion = '2.1.7.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group 'com.jojoldu.book'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
7.1버전에서는 compile과 plugin을 추가하는 부분에서 차이가 존재했다.
bulidscript {
ext {
springBootVersion = '2.1.7.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
plugins {
id 'org.springframework.boot' version '2.1.7'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group 'com.jojoldu.book'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
위의 gradle 설정 처럼 plugins과 compile을 implementation으로 바꾸는 과정이 필요했다.
앞으로도 진행하면서 gradle에서 큰 차이가 존재하는데 jojoldu(이동욱)저자님의 블로그에 바뀐 gradle에 대해서도 한차례 정리를 해주셨다.
https://jojoldu.tistory.com/539
책을 진행하면서 진행회차에 맞게 위의 블로그 글에서 추가하는것을 권장한다. 이후에 AWS에 build 하는 과정에서 오류가 많이 발생한다... 하지만 글에도 써놓으셨듯이 이것도 버전이 상승하면서 변경할 가능성이 농후하다. 그러므로 오류를 추적해서 수정하는 노력이 필수적인 것 같다.
위처럼 변경하면 Springboot 버전을 2.4.1로 변경했기에 그와 맞게 변경을 하면 다음처럼 변한다.
plugins {
id 'org.springframework.boot' version '2.4.1'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group 'com.jojoldu.book'
version '1.0.4-SNAPSHOT-'+new Date().format("yyyyMMddHHmmss")
sourceCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
test {
useJUnitPlatform()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
최종적으로 시작할때 필요한 Gradle은 다음과 같이 설정하면 될 것 같다.
그리고 Gradle을 변경하면 가끔 syntax에러처럼 모든 글 밑에 빨간 줄이 뜰때가 있는데
오류는 'No candidates found for method call implementation' 라는 말이 뜨게 된다.
그때는 Shift + Ctrl + A 를 눌러서 Action탭에서 Reload All Projects Gradle 라는 액션을 실행하면된다.
'Spring > 스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 4 [properties] (0) | 2022.04.25 |
---|---|
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 4 [Classes] (0) | 2022.04.25 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 3 [Annotation] (0) | 2022.04.25 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 2 [Plugins] (0) | 2022.04.24 |