Spring Cloud BOM

2026. 1. 2. 06:46Spring Microservice

Spring Cloud BOM이란?

BOM (Bill Of Materials)
👉 여러 라이브러리들의 버전 목록을 하나로 묶어 관리하는 메타 POM 입니다.

 

Spring Cloud BOM은 Spring Cloud 프로젝트에서 사용하는 수십 개 라이브러리들의 검증된 버전 조합을 정의해 둔 공식 문서(설계도)입니다.

Image

 

왜 필요한가요? (문제부터 보겠습니다)

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은 이런 이름을 씁니다:

  • Hoxton
  • Greenwich
  • 2021.0.x
  • 2022.0.x
  • 2023.0.x
  • 2024.0.x
  • 2025.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 팀이 대신 맞춰주는 공식 조합표”입니다.