inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

토비의 스프링 부트 - 이해와 원리

dependency-management 버전 질문

787

화이

작성한 질문수 11

0

안녕하세요. 현재 스프링 부트 2.7 버전을 사용하고 dependency-management 버전을 최신 버전으로 1.1.4를 사용해도 스프링 부트 버전에 맞는 라이브러리 버전을 가져오고 문제없이 동작하는 걸 확인했는데요.

또한 부트 2.7 버전 출시 전에 나온 1.0.5를 적용해봐도 라이브러리 버전은 동일하고

동작엔 문제가 없었습니다.

io.spring.dependency-management 버전은 크게 중요하지 않는걸까요??

spring-boot

답변 2

0

토비

재밌는 실험을 해보셨네요.

스프링을 비롯한 자바 서버 애플리케이션은 보통 수십 개에서 백 개가 넘는 의존 라이브러리들을 사용합니다. 표준 뿐만 아니라 오픈소스 기술도 많이 사용되고, 대부분 중복된 기능을 개발하기보다는 기존에 만들어져 검증된 라이브러리가 있으면 그걸 재사용하려고 하죠.

문제는 버전이 올라가면서 어떤 경우엔 호환성이 깨지고 오류가 나기도 합니다. 그래서 버전을 맞추는게 엄청나게 복잡한 부담입니다. dependency-management 플러그인은 그런 고민을 해결해줄 수 있도록 미리 검증된 버전의 라이브러리를 사용할 수 있게 도와주는 것으로 알고 있습니다.

그런데 이걸 최신 버전에 맞춰서 쓰지 않고 구버전을 써도 잘 동작한다는 말씀이네요. 그럴 수도 있습니다. 라이브러리들이 버전 올라간다고 모든게 다 깨지는 건 아니거든요. 하지만 그래도 스프링 개발팀이 많은 노력을 들여서 최신 스프링/부트 버전에 맞는 라이브러리들을 추천하고 사용하도록 권장하는 데는 여러 이유가 있습니다. 당장은 문제는 없어보이지만 어떤 새로운 기능을 쓸 때 문제가 튀어나올 수 있습니다. 동작하는 것처럼 보이지만 실은 버그가 있을 수도 있고요. 새 버전에서 성능이 개선됐는데 그게 안 된 버전을 사용하게 될 수도 있겠죠.

이걸 버전을 바꿔서 다시 프로젝트 전체를 로딩하고 어떻게 버전이 바뀌는지를 확인한 뒤에 하나씩 다 검증해보기 전에는, 최신 버전에서는 뭐가 개선됐는지 등등, 사실 잘 모릅니다.

제가 추천하기엔 이런 머리 아픈 작업은 스프링부트 개발팀이 제안해준 방식을 따라서 하시면 좋겠습니다.

https://docs.spring.io/dependency-management-plugin/docs/current-SNAPSHOT/reference/html/

이 문서도 한번 참고해보세요. 그리고 GitHub 프로젝트에 최신 업데이트가 어떤게 되고 있는지도 보시면 왜 계속 새 버전이 나오는지 이해하는데 도움이 되실 겁니다.

0

인프런 AI 인턴

안녕하세요, 인프런 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을 나눔 드립니다:

11강에서 cmd에서 spring shell에 $ init 하면 Fail 메세지

0

75

2

TestRestTemplate 을 통해 테스트 실행시 웹 요청 정보가 콘솔에 표시되지 않습니다.

0

85

1

섹션7. 자동구성 정보파일분리 강의 질문(@MyAutoConfiguration 붙힌 이유)

0

202

2

WebApplicationContext를 DispatcherServlet에 this로 넘기는 것

0

279

2

인프라 빈 구성 정보의 분리에서 EnableMyAutoConfiguration 질문드립니다.

0

210

2

질문드립니다.

0

233

2

spring boot 3.3.7로 학습중입니다.

0

370

2

Serverproperties 객체 생성 후 @Impor 어노테이션 사용 이유 용도

0

162

2

spring start io 에서 이제더이상 2.x버전은 지원하지 않는 것 같습니다.

1

298

2

Springboot 3.2 이상에서 파라미터 추론관련

0

915

4

binding error

0

222

3

Arrays.copyOf 메서드의 타입 세이프

1

155

2

MyOnClassCondition에 있는 matches method의 Invoke 횟수

1

233

3

인용구의 출처가 궁금합니다.

0

259

1

프로퍼티 빈의 후처리기 도입 AnnotationUtils의 사용

0

236

2

SimpleCacheConfiguration과 빈 등록

0

169

2

MyAutoConfigImportSelector 에서 생성자로 ClassLoader를 주입받을 수 있는 점

0

244

1

IntelliJ project jenerator spring initailizr

0

150

1

강의 자료 레퍼지토리에 업로드

0

216

1

강의자료

0

388

1

Hikari 라이브러리가 없으면 오류가 나는거 아닌가요

0

314

2

Tomcat 포트 프로퍼티 미설정시 랜덤 포트 설정 문의

0

476

5

@Import 로 Bean을 등록해야하는 기준이 뭔지 궁금합니다.

0

342

2

application.properties파일내 프로퍼티 이름

0

213

1