Spring Boot μ μ΄μ©νμ¬ κ°λ°μ νκ² λλ€λ©΄ μ΄λ€ dependency λ₯Ό μ¬μ©ν΄μΌ ν μ§ μ νν΄μΌλ§ νλ€. Spring Boot μ Spring Boot Starter λ νΉμ κΈ°λ₯μ ꡬννλ λ° νμν λΌμ΄λΈλ¬λ¦¬μ μ€μ μ 미리 λ¬Άμ΄μ μ 곡νλ package μ΄λ€.
μλ₯Ό λ€μ΄, spring-boot-starter-web μ spring-web, spring-webmvc, hibernate-validator, json, tomcat λ±μ dependency λ€μ ν¬ν¨νλ€.
λν, μλμ²λΌ Spring Initializr λ₯Ό ν΅νμ¬ κ°λ¨νκ² pom.xml μ dependency λ₯Ό μλμΌλ‘ μ€μ ν μ μλ€.

κ·Έλ λ€λ©΄, κ° Starter μ ν¬ν¨λμ΄ μλ dependency λ€μ μ΄λ€ κ²λ€μ΄ μλμ§ μ΄λ»κ² νμΈν κΉ?
μ°μ μ μΌλ‘ Maven Central Repository ννμ΄μ§μ μ μνμ¬ νΉμ Starter μ λν dependecy λͺ©λ‘μ νμΈν μ μλ€. μλ₯Ό λ€μ΄, Spring Boot Starter Web μ λν Dependecy λͺ©λ‘μ νμΈν μ μλ€.
λ€λ₯Έ λ°©λ²μ IDE λ₯Ό ν΅νμ¬ ν΄λΉ νλ‘μ νΈμ ν¬ν¨λ Starter λ€μ Dependency λͺ©λ‘μ νμΈν μ μλ€. IntelliJ μ κ²½μ°, View > Tool Windows > Maven > Dependencies λ₯Ό ν΅νμ¬ μλμ κ°μ΄ νμΈν μ μλ€.

Spring Boot Starter Parent
Maven μ΄ Spring Boot μ dependencies λ₯Ό κ°λ°μκ° μ§μ λ€μ΄λ‘λ λ°κ³ μ€μ νλ μΌμ λμ ν΄μ€λ€. λν Starter λ₯Ό μ΄μ©νμ¬ μ΄λ€ dependency λ₯Ό μ¬μ©ν΄μΌ νλμ§ μΌμΌμ΄ μ ννμ§ μμλ λλ€.
κ·Έλ¬λ μ¬λ¬κ°μ Starter λ₯Ό μ¬μ©νλ κ²½μ°μ, κ° Starter μ version μ λͺ μμ μΌλ‘ μΆκ°ν΄μ€μΌ νλ€. μ΄λ κ° Starter κ°μ version νΈνμ± λ¬Έμ λ‘ μΈν μΆ©λμ΄ μΌμ΄λ μ μλ€.
μ΄λ₯Ό μνμ¬ Starter μ λ²μ κΉμ§ ν΅ν© κ΄λ¦¬νλ Starter Parent μ΄ μ‘΄μ¬νλ€.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>POM νμΌμ λΆλͺ¨-μμ κ΄κ³λ₯Ό μ§μνκΈ° λλ¬Έμ, μμ κ°μ΄ Starter Parent λ₯Ό ν΅νμ¬ version μ μ§μ νλ©΄ λΆλͺ¨ POM μ μ€μ μ μμ POM μ΄ μμλ°μ μ μλ€.
<properties>
<java.version>17</java.version>
</properties>λν κ° Starter Parent κ° κΈ°λ³Έμ μΌλ‘ μ¬μ©νλ Java version μ΄ μ‘΄μ¬νλ€. λ°λΌμ μ μ½λμ²λΌ overriding μ ν΅νμ¬ ν΄λΉ Java version μ λ°κΎΈλ λ°μ μ¬μ©νκ±°λ, νλ‘μ νΈμμ μ¬μ©νλ Java version μ λͺ μμ μΌλ‘ λνλ΄λ λ°μ μ¬μ©ν μ μλ€.
μ΄λ₯Ό ν΅νμ¬ λΌμ΄λΈλ¬λ¦¬ κ°μ version μΆ©λμ λ°©μ§λΌκ³ , μμ μ μΈ κ°λ° νκ²½μ μ 곡νλ€. μ΄μΈμλ Starter Parent λ μμ€ μΈμ½λ© λ°©μ, Maven plugin μ€μ λ± νλ‘μ νΈμ νμν κΈ°λ³Έμ μΈ νκ²½μ μ μνλ€.