스프링부트로 개발을 하다보면 다양한 외부 라이브러리를 활용합니다. 예를 들어, 웹 애플리케이션을 위해 spring-boot-starter-web을, DB 연동을 위해 spring-boot-starter-data-jpa를, JSON 처리를 위해 jackson 계열 라이브러리를 사용하죠.
그런데 스프링부트를 사용하면 특정 라이브러리의 버전을 적지 않아도 프로젝트가 잘 빌드되고 동작합니다. 스프링부트는 의존성을 관리해주는 기능을 제공하는데, 어떻게 라이브러리 버전을 자동으로 관리하는지 궁금하여 알아본 내용을 글로 정리합니다.
프로젝트를 진행하다보면 수많은 라이브러리를 가져다 쓰게됩니다. 하나의 웹 애플리케이션을 개발한다고 해도 적어도 다음과 같은 라이브러리들이 필요합니다.
이 때 각 라이브러리는 또 다른 라이브러리에 의존성을 가질 수 있습니다. 예를 들면 spring-boot-starter-web 내부적으로는 spring MVC, Jackson, Tomcat 등 다양한 라이브러리를 포함합니다.