Home > Development tools and environments > πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] `org.springframework.boot` ν”ŒλŸ¬κ·ΈμΈμ˜ μ—­ν• ?

πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] `org.springframework.boot` ν”ŒλŸ¬κ·ΈμΈμ˜ μ—­ν• ?
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:
    mvn package
    

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 ν”„λ‘œμ νŠΈλ₯Ό μ‰½κ²Œ μ‹€ν–‰, νŒ¨ν‚€μ§•, μ˜μ‘΄μ„± 관리할 수 μžˆλŠ” λ„κ΅¬μž…λ‹ˆλ‹€.
  • μ•„ ν”ŒλŸ¬κ·ΈμΈμ„ ν™œμš©ν•˜λ©΄ 개발 속도가 크게 ν–₯μƒλ˜κ³ , 배포 및 관리가 κ°„λ‹¨ν•΄μ§‘λ‹ˆλ‹€.