Spring Boot를 이용하기 위해서는 pom.xml 파일에 Spring Boot를 위한 Maven Dependency를 추가하는 작업이 선행되어야 합니다. 크게 Parent POM으로 정의하여 Spring Boot의 자식이 되는 경우와 Spring Boot의 모든 dependency를 import하는 방법으로 나누며 좀더 유연하게 대처를 하기 위해서는 후자를 권장합니다.

Parent POM으로 Spring Boot 추가하기

가장 흔하게 사용하는 방법입니다만 문제는 프로젝트가 다수의 모듈로 구성되어 있고 자식 관계를 가지고 있다면 이 방법은 권장하지 않습니다. 왜냐하면 여러개의 Parent를 Maven이 지원하지 않기 때문에 다음과 같이 Spring Boot를 Parent로 설정하면 모듈의 구조화를 하기 어렵기 때문입니다.

pom.xml 파일
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
</parent>

Dependency Management로 Spring Boot를 추가하기

Parent POM이 아닌 Dependency Management로 추가하는 방법으로써 이 방법을 권장합니다. 우선 다음과 Spring Boot의 최상위 Dependency를 모두 가지고 있는 Dependency를 import합니다. 그러면 해당 버전의 Spring Boot와 관련된 모든 Dependency를 사용할 수 있게 됩니다.

pom.xml 파일
<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.2.6.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

규모가 있는 프로젝트 이거나, Sub Project로 잘 세분화 되어 있는 Maven Project를 진행하는 경우에는 Maven POM을 상속하는 경우가 발생합니다. Spring Boot를 parent로 상속하면 Sub Project로 구성이 어려우므로 POM을 parent로 지정하기 보다는 import 하는 것이 더 유용하므로 이 방식을 사용하는 것을 권장합니다. Spring Boot + Maven BOM을 참고하도록 합니다.