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 νλ‘μ νΈλ₯Ό μ½κ² μ€ν, ν¨ν€μ§, μμ‘΄μ± κ΄λ¦¬ν  μ μλ λꡬμ
λλ€.
- μ νλ¬κ·ΈμΈμ νμ©νλ©΄ κ°λ° μλκ° ν¬κ² ν₯μλκ³ , λ°°ν¬ λ° κ΄λ¦¬κ° κ°λ¨ν΄μ§λλ€.