0. 들어가며


스프링부트로 개발을 하다보면 다양한 외부 라이브러리를 활용합니다. 예를 들어, 웹 애플리케이션을 위해 spring-boot-starter-web을, DB 연동을 위해 spring-boot-starter-data-jpa를, JSON 처리를 위해 jackson 계열 라이브러리를 사용하죠.

그런데 스프링부트를 사용하면 특정 라이브러리의 버전을 적지 않아도 프로젝트가 잘 빌드되고 동작합니다. 스프링부트는 의존성을 관리해주는 기능을 제공하는데, 어떻게 라이브러리 버전을 자동으로 관리하는지 궁금하여 알아본 내용을 글로 정리합니다.

1. 스프링 부트와 의존성 관리


1.1 의존성 관리의 필요성

프로젝트를 진행하다보면 수많은 라이브러리를 가져다 쓰게됩니다. 하나의 웹 애플리케이션을 개발한다고 해도 적어도 다음과 같은 라이브러리들이 필요합니다.

이 때 각 라이브러리는 또 다른 라이브러리에 의존성을 가질 수 있습니다. 예를 들면 spring-boot-starter-web 내부적으로는 spring MVC, Jackson, Tomcat 등 다양한 라이브러리를 포함합니다.