Java 17 이상 설치
IDE: IntelliJ
스프링 부트 3.0 이상, JDK 17 이상 사용
https://start.spring.io
프로젝트 선택
- Project: Gradle - Groovy Project
- Spring Boot: 3.x.x
- Language: Java
- Packaging: Jar
Java: 17 또는 21
Project Metadata
- groupId : hello
- artifactId : hello-spring
Dependencies: Spring Web, Thymeleaf


궁금했던 점:
Maven과 Gradle은 모두 빌드 관리 도구이다.
여기서 빌드는 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 결과를 말한다.
빌드 도구는 소스코드에서 애플리케이션을 생성하면서 여러가지 외부 라이브러리를 사용하는데, 빌드 관리도구는 사용자가 관리할 필요 없이 필요한 라이브러리들을 자동으로 관리한다.
Maven 과 Gradle 차이점?
- Maven 이란?
- Maven은 Java 전용 프로젝트 관리 도구로, Lifecycle 관리 목적 빌드 도구이며, Apache Ant의 대안으로 만들어졌다.
Maven은 아파치 라이센스로 배포되는 오픈 소스 소프트웨어이다
- Lifecycle 관리 도구로, 정해진 Lifecycle에 의하여 작업을 수행하며, 전반적인 프로젝트 관리 기능을 포함하고 있다.
- Maven은 필요한 라이브러리를 pom.xml에 정의한다. 이를 프로젝트 모델링이라고 한다.
- Gradle 이란?
- Maven을 대체할 수 있는 프로젝트 구성 관리 및 범용 빌드 툴이며, Ant Builder와 Groovy script를 기반으로 구축되어 기존 Ant의 역할과 배포 스크립의 기능을 모두 사용가능하며 스프링부트와 안드로이드에서 사용된다.
- 가독성이 좋다 : 코딩에 의한 간결한 정의가 가능하므로 가독성이 좋다.
재사용에 용이 : 설정 주입 방식(Configuration Injection)을 사용하므로 재사용에 용이하다.
구조적인 장점 : Build Script를 Groovy 기반의 DSL(Domail Specific Language)를 사용하여 코드로서 설정 정보를 구성하므로 구조적인 장점이 있다.
편리함 : Gradle 설치 없이 Gradle wrapper를 이용하여 빌드를 지원한다.
멀티 프로젝트 : Gradle은 멀티 프로젝트 빌드를 지원하기 위해 설계된 빌드 관리 도구이다.
지원: Maven을 완전 지원한다.
Maven과 Gradle을 비교했을때 스크립트 길이와 가독성 면에서 Gradle이 우세하다. 또한 빌드와 테스트 실행 결과가 Gradle이 더 빠름을 알 수 있다. 의존성이 늘어날 수록 스크립트 품질의 차이가 커지는데 Maven은 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속을 받아야하지만, Gradle은 설정 주입 방식을 사용하므로 멀티 프로젝트에 더 적합하다.

이젠 Gradle을 사용하는걸로~