Spring Cloud BOM
2026. 1. 2. 06:46ㆍSpring Microservice
Spring Cloud BOM이란?
BOM (Bill Of Materials) 은
👉 여러 라이브러리들의 버전 목록을 하나로 묶어 관리하는 메타 POM 입니다.
Spring Cloud BOM은 Spring Cloud 프로젝트에서 사용하는 수십 개 라이브러리들의 검증된 버전 조합을 정의해 둔 공식 문서(설계도)입니다.

왜 필요한가요? (문제부터 보겠습니다)
Spring Cloud는 내부적으로 아래처럼 의존성이 매우 많습니다.
- spring-cloud-config
- spring-cloud-netflix-eureka
- spring-cloud-gateway
- spring-cloud-openfeign
- spring-cloud-vault
- spring-cloud-consul
- … (그리고 그 안에 또 Spring Security, Reactor, Netty, Jackson 등)
❌ 각각의 버전을 직접 지정하면?
- 버전 충돌
- 런타임 오류
- ClassNotFoundException
- 미묘한 버그 폭탄 💣
👉 Spring Cloud BOM이 이걸 전부 대신 맞춰줍니다.
BOM이 하는 일 (핵심 요약)
Spring Cloud BOM은 다음을 보장합니다.
| 항목 | 설명 |
|---|---|
| ✅ 버전 일관성 | 모든 Spring Cloud 컴포넌트의 버전이 서로 호환됨 |
| ✅ 검증 완료 | Spring 팀이 테스트한 조합 |
| ✅ 관리 단순화 | 의존성에 버전 명시 불필요 |
| ✅ Spring Boot와 호환 | 특정 Boot 버전에 맞는 Cloud 세트 제공 |
실제 설정 예제 (Maven)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2025.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
그리고 개별 의존성에는 버전을 쓰지 않습니다.
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
👉 버전은 BOM이 자동으로 주입
Spring Boot BOM vs Spring Cloud BOM
| 구분 | Spring Boot BOM | Spring Cloud BOM |
|---|---|---|
| 관리 대상 | Spring Framework, Jackson, Tomcat 등 | Config, Eureka, Gateway, Vault 등 |
| 범위 | 기초 인프라 | MSA/분산시스템 |
| 적용 방식 | 부모 POM | dependencyManagement |
| 역할 | 기반 OS | MSA 미들웨어 |
📌 둘은 경쟁 관계가 아니라, 계층 관계입니다.
버전 이름이 특이한 이유
Spring Cloud BOM은 이런 이름을 씁니다:
HoxtonGreenwich2021.0.x2022.0.x2023.0.x2024.0.x2025.0.x
👉 이는 특정 Spring Boot 버전과 매칭되는 릴리스 트레인입니다.
예시:
Spring Boot 3.2.x
↳ Spring Cloud 2023.0.x
⚠️ 임의 조합 금지
(Spring Boot 3.x + Cloud 2021.x ❌)
한 문장으로 정리하면
Spring Cloud BOM은
“Spring Cloud 생태계의 모든 의존성 버전을
Spring 팀이 대신 맞춰주는 공식 조합표”입니다.
'Spring Microservice' 카테고리의 다른 글
| gRPC vs Outbox 패턴 (0) | 2026.04.07 |
|---|---|
| QueryDSL에서 Elasticsearch로: 검색 엔진 도입이 백엔드에 가져온 변화 (1) | 2026.04.07 |
| Config (0) | 2025.03.02 |
| 1.Welcome to the Spring Cloud (0) | 2025.02.28 |
| Why use a microservices approach to building applications (0) | 2025.02.27 |