작성
·
367
0
안녕하세요. 현재 스프링 부트 2.7 버전을 사용하고 dependency-management 버전을 최신 버전으로 1.1.4를 사용해도 스프링 부트 버전에 맞는 라이브러리 버전을 가져오고 문제없이 동작하는 걸 확인했는데요.
또한 부트 2.7 버전 출시 전에 나온 1.0.5를 적용해봐도 라이브러리 버전은 동일하고
동작엔 문제가 없었습니다.
io.spring.dependency-management 버전은 크게 중요하지 않는걸까요??
답변 2
0
재밌는 실험을 해보셨네요.
스프링을 비롯한 자바 서버 애플리케이션은 보통 수십 개에서 백 개가 넘는 의존 라이브러리들을 사용합니다. 표준 뿐만 아니라 오픈소스 기술도 많이 사용되고, 대부분 중복된 기능을 개발하기보다는 기존에 만들어져 검증된 라이브러리가 있으면 그걸 재사용하려고 하죠.
문제는 버전이 올라가면서 어떤 경우엔 호환성이 깨지고 오류가 나기도 합니다. 그래서 버전을 맞추는게 엄청나게 복잡한 부담입니다. dependency-management 플러그인은 그런 고민을 해결해줄 수 있도록 미리 검증된 버전의 라이브러리를 사용할 수 있게 도와주는 것으로 알고 있습니다.
그런데 이걸 최신 버전에 맞춰서 쓰지 않고 구버전을 써도 잘 동작한다는 말씀이네요. 그럴 수도 있습니다. 라이브러리들이 버전 올라간다고 모든게 다 깨지는 건 아니거든요. 하지만 그래도 스프링 개발팀이 많은 노력을 들여서 최신 스프링/부트 버전에 맞는 라이브러리들을 추천하고 사용하도록 권장하는 데는 여러 이유가 있습니다. 당장은 문제는 없어보이지만 어떤 새로운 기능을 쓸 때 문제가 튀어나올 수 있습니다. 동작하는 것처럼 보이지만 실은 버그가 있을 수도 있고요. 새 버전에서 성능이 개선됐는데 그게 안 된 버전을 사용하게 될 수도 있겠죠.
이걸 버전을 바꿔서 다시 프로젝트 전체를 로딩하고 어떻게 버전이 바뀌는지를 확인한 뒤에 하나씩 다 검증해보기 전에는, 최신 버전에서는 뭐가 개선됐는지 등등, 사실 잘 모릅니다.
제가 추천하기엔 이런 머리 아픈 작업은 스프링부트 개발팀이 제안해준 방식을 따라서 하시면 좋겠습니다.
https://docs.spring.io/dependency-management-plugin/docs/current-SNAPSHOT/reference/html/
이 문서도 한번 참고해보세요. 그리고 GitHub 프로젝트에 최신 업데이트가 어떤게 되고 있는지도 보시면 왜 계속 새 버전이 나오는지 이해하는데 도움이 되실 겁니다.
0
안녕하세요, 인프런 AI 인턴입니다.
io.spring.dependency-management 플러그인은 Maven이나 Gradle 프로젝트에서 Spring Boot의 종속성 관리 기능을 더 편리하게 사용할 수 있도록 도와주는 도구입니다. 이 플러그인을 사용하면, Spring Boot가 관리하는 종속성들의 버전을 자동으로 맞춰줘서, 개발자가 각 종속성의 버전을 일일이 관리하지 않아도 됩니다.
Spring Boot의 공식 문서에 따르면, Spring Boot는 종속성들에 대한 권장 버전을 제공하며, 이러한 종속성들의 버전은 Spring Boot의 버전과 매우 밀접한 관련이 있습니다. 따라서, 일반적으로는 Spring Boot 버전을 업그레이드할 때 해당 버전에 맞는 종속성들로 함께 업그레이드되도록 설계되어 있습니다.
여러분이 경험하신 것처럼, io.spring.dependency-management 플러그인의 버전을 변경해도 Spring Boot가 관리하는 종속성들의 버전이 바뀌지 않고 문제 없이 동작하는 경우가 많습니다. 그 이유는 이 플러그인이 Spring Boot와 함께 제공하는 종속성 관리 기능을 이용하기만 하면 되기 때문입니다. 플러그인 자체의 변경 사항은 주로 내부 구현이나 성능 개선에 관련된 것일 수 있으므로, Spring Boot가 관리하는 종속성들의 버전에 영향을 미치지 않는 경우가 많습니다.
그러나, 새로운 기능이 추가되거나 중대한 버그가 수정될 수 있으므로, 가능하다면 io.spring.dependency-management 플러그인도 최신 상태로 유지하는 것이 좋습니다. 하지만, 주요 관심사는 여전히 Spring Boot 버전과 그에 따른 종속성 관리에 있어야 합니다.
참고하실 만한 공식 문서의 URL을 나눔 드립니다: