해당 글은 스프링 부트와 AWS로 혼자 구현하는 웹 서비스라는 책을 읽고 핵심 내용을 정리하기 위해 작성하는 글입니다.
01장 인텔리제이로 스프링 부트 시작하기
1️⃣ Spring 프로젝트 생성하기
초반엔 https://start.spring.io/에서 말고 책에서 진행한 것과 같이 IntelliJ 상에서 프로젝트 파일을 생성하려고 했다. 하지만 IntelliJ도 gradle도 버전이 업데이트 되면서 책과 코드가 다른 부분이 많았기 때문에 공부하면서 계속 해당 문제로 인한 에러가 발생하곤 했다.
이 문제를 해결하기 위해 start.spring.io에서 다시 프로젝트 파일을 생성하여 진행했다.
설정은 다음과 같이 했다.
이후 다운로드 된 파일의 압축을 풀고 build.gradle로 IntelliJ를 실행하면, 여러 라이브러리가 다운로드 될 것이다.
⛔ Error 발생!
A problem occurred configuring root project '...'
위와 같은 에러가 발생했다. 이유는 Spring boot 3.x 버전은 JAVA 17부터 지원을 하는데, IntelliJ에서 JAVA 버전이 11로 설정되어 있었기 때문이다.
다음과 같이 설정을 변경함으로써 에러를 해결할 수 있었다.
- Ctrl+Shift+Alt+S를 눌러 JAVA를 17로 변경
- File > Settings > Build, Execution, Deployment > Build Tools > Gradle에서 Gradle JVM의 버전을 JAVA 17로 변경
에러를 해결함으로써 build 파일에 있는 라이브러리를 성공적으로 다운로드 할 수 있었다.
2️⃣ build.gradle을 알아보자🐘
스프링 프로젝트를 생성하면 build.gradle이라는 파일이 있다. 해당 파일의 내부를 살펴보면 다음과 같다.
plugins { // ①
id 'java'
id 'org.springframework.boot' version '3.0.4'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'com.springbook.kdy'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories { // ②
mavenCentral()
}
dependencies { // ③
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
- ① plugins : 특정 작업을 하기 위해서 모아놓은 Task들의 묶음
- ② repositories : 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지 결정
- ③ dependencies : 프로젝트 개발에 필요한 의존성들을 선언
추가로 라이브러리가 필요한 경우에는 dependencies에 라이브러리를 추가하고 아래 그림과 같이 Gradle > 새로고침 버튼을 눌러 다운로드 하면 된다.
'Java > Spring' 카테고리의 다른 글
[Spring] 비즈니스 로직을 처리하는 패턴 (0) | 2023.03.31 |
---|---|
[Spring] Model 객체와 @ModelAttribute 어노테이션 (0) | 2023.03.25 |
[Spring] Spring vs Spring Boot (0) | 2023.03.22 |
[Spring] 테스트 코드에 대해 알아보자! (0) | 2023.03.22 |
[Spring] A problem occurred configuring root project '...' 에러 해결 (0) | 2023.03.20 |