Development tools
Enviroments
π οΈ[κ°λ° λꡬ λ° νκ²½] org.springframework.boot
νλ¬κ·ΈμΈμ μν ?
- Spring Boot νλ¬κ·ΈμΈ(
org.springframework.boot
)μ Spring Boot κΈ°λ° νλ‘μ νΈλ₯Ό ν¨μ¨μ μΌλ‘ λΉλνκ³ μ€νν μ μλλ‘ λλ λꡬμ
λλ€.
- Gradle λλ Mavenκ³Ό κ°μ λΉλ λꡬμμ μ¬μ©λλ©°, λ€μν μμ
μ μλννμ¬ κ°λ° μμ°μ±μ λμ
λλ€.
1οΈβ£ μ£Όμ μν .
1οΈβ£ Spring Boot μ ν리μΌμ΄μ
μ€ν μ§μ.
- Spring Boot μ ν리μΌμ΄μ
μ μ§μ μ€νν μ μλ bootRun(Gradle) λλ spring-boot:run(Maven) μμ
μ μ 곡ν©λλ€.
- μ ν리μΌμ΄μ
μ€νμ νμν ν΄λμ€ν¨μ€ μ€μ λ° μμ ν΄λμ€λ₯Ό μλμΌλ‘ κ°μ§ν©λλ€.
- μ€ν λͺ
λ Ή μ:
./gradlew bootRun
mvn spring-boot:run
2οΈβ£ μ ν리μΌμ΄μ
ν¨ν€μ§.
- Spring Boot μ ν리μΌμ΄μ
μ μ€ν κ°λ₯ν JAR λλ WAR νμΌλ‘ ν¨ν€μ§ν©λλ€.
- ν¨ν€μ§λ νμΌμλ νμν λͺ¨λ μμ‘΄μ±κ³Ό λ΄μ₯ μΉ μλ²(μ: Tomcat, Jetty)κ° ν¬ν¨λ©λλ€.
- μ΄λ₯Ό ν΅ν΄ μΆκ° μ€μ μμ΄ λ
립 μ€νν μ ν리μΌμ΄μ
μΌλ‘ λ°°ν¬κ° κ°λ₯ν©λλ€.
- Gradle:
./gradlew bootJar
./gradlew bootWar
- Maven:
3οΈβ£ μμ‘΄μ± κ΄λ¦¬.
- Spring Bootμ μμ‘΄μ± κ΄λ¦¬ κΈ°λ₯μ μ 곡ν©λλ€.
- spring-boot-dependencies BOM(Bill of Materials)μ ν΅ν΄ νλ‘μ νΈμμ μ¬μ©ν΄μΌ ν μμ‘΄μ± λ²μ μ μλμΌλ‘ κ΄λ¦¬ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ νΈνμ± λ¬Έμ λ₯Ό μ΅μννκ³ , μμ μ μΈ μμ‘΄μ± κ΅¬μ±μ μ μ§ν μ μμ΅λλ€.
4οΈβ£ λ΄μ₯ μΉ μλ² ν΅ν©.
- λ΄μ₯λ Tomcat, Jetty, Undertowμ κ°μ μΉ μλ²λ₯Ό νμ©νμ¬ μΉ μ ν리μΌμ΄μ
μ μ€νν μ μλλ‘ μ€μ ν©λλ€.
- κ°λ° μ€μλ bootRun λͺ
λ ΉμΌλ‘ λ΄μ₯ μλ²λ₯Ό μ½κ² μ€ννκ³ ν
μ€νΈν μ μμ΅λλ€.
5οΈβ£ μ€μ λ° νκ²½ κ΄λ¦¬.
- Spring Bootμ
application.properties
λλ application.yml
κ³Ό κ°μ μ€μ νμΌμ μ½κ³ μ€ν μ μ μ©ν©λλ€.
- νλ‘νμΌ(Profiles)μ ν΅ν΄ λ€μν μ€ν νκ²½(dev, test, prod)μ μ½κ² ꡬμ±ν μ μμ΅λλ€.
6οΈβ£ κ°λ° λ° λλ²κΉ
μ§μ.
- μ ν리μΌμ΄μ
μ½λλ₯Ό λ³κ²½νλ©΄ μλμΌλ‘ λ°μνλ ν« λ¦¬λ‘λ(Hot Reload) κΈ°λ₯μ Spring DevToolsμ μ°κ³νμ¬ μ 곡ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ μ½λ λ³κ²½ ν μλ²λ₯Ό λ€μ μμνμ§ μκ³ λ ν
μ€νΈν μ μμ΅λλ€.
7οΈβ£ ν
μ€νΈ μ§μ.
- test μμ
μ ν΅ν΄ Spring Boot ν
μ€νΈλ₯Ό μ€νν©λλ€.
- Gradle/Maven λΉλ λꡬμ κΈ°λ³Έ μ 곡λλ ν
μ€νΈ νλ μμν¬(JUnit, TestNG)μ μ½κ² ν΅ν©λ©λλ€.
8οΈβ£ μΆκ° μμ
μ 곡.
- Gradle
- bootBuildeImage : μ ν리μΌμ΄μ
μ OCI(컨ν
μ΄λ) μ΄λ―Έμ§λ‘ λΉλ.
- Maven
- spring-boot:build-image : 컨ν
μ΄λ μ΄λ―Έμ§λ₯Ό μμ±.
9οΈβ£ Spring Boot Gradle νλ¬κ·ΈμΈ μμ .
build.gradle μ€μ .
plugins {
id 'org.springframework.boot' version '3.4.0' // Spring Boot νλ¬κ·ΈμΈ
id 'io.spring.dependency-management' version '1.1.3' // μμ‘΄μ± κ΄λ¦¬
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
- μ£Όμ λͺ
λ Ήμ΄.
- μ ν리μΌμ΄μ
μ€ν:
./gradlew bootRun
- JAR μμ±:
./gradlew bootJar
- WAR μμ±:
./gradlew bootWar
1οΈβ£0οΈβ£ Spring Boot Maven νλ¬κ·ΈμΈ μμ .
pom.xml μ€μ .
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- μ£Όμ λͺ
λ Ήμ΄.
- μ ν리μΌμ΄μ
μ€ν:
mvn spring-boot:run
- ν¨ν€μ§:
mvn package
1οΈβ£1οΈβ£ μμ½.
- Spring Boot νλ¬κ·ΈμΈ Spring Boot νλ‘μ νΈλ₯Ό μ½κ² μ€ν, ν¨ν€μ§, μμ‘΄μ± κ΄λ¦¬ν μ μλ λꡬμ
λλ€.
- μ νλ¬κ·ΈμΈμ νμ©νλ©΄ κ°λ° μλκ° ν¬κ² ν₯μλκ³ , λ°°ν¬ λ° κ΄λ¦¬κ° κ°λ¨ν΄μ§λλ€.