본문 바로가기

AI UPDATES

Spring AI 1.0.8 1.1.7 2.0.0-M7 release: MCP와 Gemini 연동 변경점

 

Spring AI 1.0.8·1.1.7·2.0.0-M7 릴리스: MCP와 Gemini 연동 변경점

보안 패치, MCP Streamable HTTP, ToolCallAdvisor, Gemini 2.5 Flash를 운영 점검 순서로 읽어봅니다.

 

Spring AI 1.0.8 1.1.7 2.0.0-M7 release 핵심 요약

 

2026년 5월 23일 Spring 공식 블로그는 Spring AI 1.0.8, 1.1.7, 2.0.0-M7이 Maven Central에 올라갔다고 공지했습니다. 운영 중인 1.1.x 사용자는 1.1.7 보안 수정과 회귀 테스트를 먼저 보고, 2.0.0-M7은 MCP와 도구 호출 API 변경을 별도 브랜치에서 검토하는 편이 안전합니다.

Spring AI를 이미 서비스 코드에 붙여 두었다면 이번 업데이트는 단순한 버전 알림으로 넘기기 어렵습니다. 특히 Anthropic Skills API, MCP 서버, ChatClient 도구 호출, Gemini 연동을 쓰는 팀은 “지금 올릴 버전”과 “실험 브랜치에서 볼 버전”을 나눠야 합니다.

Spring AI 1.0.8 1.1.7 2.0.0-M7 release를 볼 때 제가 먼저 가르는 기준도 그 지점입니다. 공식 공지가 말한 사실을 따라가되, 한국의 Java/Spring 팀이 실제로 열어볼 파일과 테스트 경로를 중심에 두는 편이 더 쓸모 있습니다.

이번 릴리스의 무게는 1.1.7과 2.0.0-M7에 실려 있습니다. 1.1.7은 CVE-2026-41863과 안정 계열 수정, 2.0.0-M7은 MCP transport와 ToolCallAdvisor/ToolSpec 전환, Gemini 2.5 Flash 및 Google Client Library BOM 점검으로 나눠 읽는 것이 좋습니다.

 
Java/Spring 개발자가 릴리스 노트, 보안 체크리스트, MCP 연결 다이어그램을 함께 보는 추상적 AI 개발 환경 이미지. 실제 Spring 로고 복제 없이 녹색 포인트와 코드 에디터 분위기만 사용.
 

릴리스 타임라인: GitHub 태그와 공식 공지를 나눠 보기

 

GitHub 릴리스 태그는 2026년 5월 22일 공개됐고, Spring 공식 블로그 공지는 2026년 5월 23일 올라왔습니다. 빠른 판단은 공식 블로그로 시작하고, 실제 변경 검토는 GitHub 릴리스 노트와 업그레이드 문서를 함께 보는 방식이 좋습니다.

공식 블로그는 큰 줄기를 잡는 출발점입니다. 다만 서비스 코드에 적용하려면 버전별 GitHub 릴리스 노트까지 봐야 합니다. 1.0.8, 1.1.7, 2.0.0-M7은 같은 날 GitHub 릴리스로 정리됐지만 성격이 다릅니다.

1.0.8은 1.0.x 유지 계열에 가까운 수정이고, 1.1.7은 현재 1.1.x 사용자가 먼저 확인할 안정 계열 업데이트입니다. 반면 2.0.0-M7은 GitHub에서 프리릴리스로 표시되는 마일스톤입니다. 운영 반영보다 마이그레이션 실험에 가깝게 접근해야 합니다.

날짜 확인할 곳 실무 의미
2026-05-22 GitHub v1.0.8, v1.1.7, v2.0.0-M7 릴리스 세부 수정 항목과 PR 추적
2026-05-23 Spring 공식 블로그 Maven Central 공개와 주요 변경 요약
2026-05-23 Spring Security Advisory CVE-2026-41863 영향 범위와 수정 버전 확인
 

버전별 변경점: 1.0.8, 1.1.7, 2.0.0-M7

 

1.0.8은 RedisVectorStore 삭제 버그 수정이 핵심이고, 1.1.7은 보안 수정과 Ollama/OpenAI streaming/RedisVectorStore 안정성 수정이 중요합니다. 2.0.0-M7은 MCP, ToolCallAdvisor, ToolSpec, Gemini 2.5 Flash, Google Client Library BOM 변경이 들어간 프리릴리스입니다.

Spring AI 1.0.8 1.1.7 2.0.0-M7 release를 한 줄로 묶어 부르기는 쉽지만, 실제 선택은 프로젝트 라인에 따라 갈립니다.

1.0.x에 고정된 프로젝트라면 1.0.8의 RedisVectorStore 삭제 동작 수정이 먼저 보입니다. Redis 기반 벡터 저장소를 쓰지 않는다면 체감 변경은 작을 수 있지만, 쓰고 있다면 10개를 넘는 데이터 삭제 회귀 테스트를 넣는 편이 좋습니다.

1.1.7은 운영팀이 더 가까이 볼 버전입니다. CVE-2026-41863 수정 외에도 Ollama의 GraalVM native image 관련 수정, OpenAiChatModel streaming chunk 누락 수정, RedisVectorStore 삭제 버그 수정이 함께 들어갔습니다.

2.0.0-M7은 성격이 다릅니다. MCP transport에서 SSE를 deprecated 처리하고 Streamable HTTP를 기본 서버 프로토콜로 삼는 변화, ToolCallAdvisor 자동 등록과 ToolSpec fluent API, Gemini 2.5 Flash 참조와 Google Client Library BOM 업데이트가 포함됩니다. 한국 사용자 입장에서는 “새 기능이 많다”보다 “기존 통합 코드가 어디서 깨질 수 있나”가 더 중요한 포인트입니다.

 
세 갈래 버전 선택 흐름도. 1.0.x 유지, 1.1.x 운영 패치, 2.x 마이그레이션 실험을 구분한 기술 블로그용 다이어그램 이미지.
 

CVE-2026-41863: 누구에게 중요한 보안 수정인가

 

CVE-2026-41863은 Spring AI 1.1.0부터 1.1.x까지를 영향 범위로 두고, 1.1.7을 수정 버전으로 제시한 MEDIUM 등급 권고입니다. 공식 설명상 핵심 조건은 Anthropic Skills API 지원에서 LLM 영향을 받은 파일명이 파일 쓰기 경로에 들어가는 흐름입니다.

보안 이슈는 크게 말하기 쉬운 주제지만, 이번 건은 조건을 좁혀 봐야 합니다. Spring Security Advisory는 CVE-2026-41863을 MEDIUM으로 표시하고, 영향 범위를 Spring AI 1.1.0부터 1.1.x까지로 설명합니다. 수정 버전은 1.1.7입니다.

문제 설명은 Anthropic Skills API 지원과 파일 쓰기 경로에 걸려 있습니다. LLM의 영향을 받은 파일명이 충분히 정리되지 않은 채 `Path.resolve` 전에 사용될 수 있고, 그 결과 의도한 디렉터리 밖으로 파일이 쓰일 수 있다는 취지입니다.

다만 여기서 조심할 점은 “Spring AI를 쓰면 모두 같은 위험”이라고 말하면 안 된다는 점입니다. 실제로 확인할 부분은 프로젝트가 1.1.x인지, Anthropic Skills API 지원과 파일 쓰기 skill 흐름을 쓰는지, 그리고 외부 입력 또는 모델 출력이 파일명에 영향을 주는지입니다.

> 운영 중인 1.1.x 프로젝트라면 1.1.7 적용 여부를 보안 점검 항목으로 올려두는 것이 맞습니다. 다만 공식 권고 밖의 공격 시나리오까지 단정할 필요는 없습니다.

 

MCP와 도구 호출 코드에서 확인할 변화

 

2.0.0-M7에서는 MCP SSE transport가 deprecated 처리되고 Streamable HTTP가 기본 서버 프로토콜이 되는 방향이 중요합니다. 기존 ChatClient에서 ToolCallAdvisor를 직접 넣었다면 자동 등록과 중복 동작 여부도 함께 확인해야 합니다.

MCP를 쓰는 팀이라면 Spring AI 1.0.8 1.1.7 2.0.0-M7 release 중에서도 2.0.0-M7을 따로 봐야 합니다. 릴리스 노트는 SSE transport deprecation과 Streamable HTTP 기본화를 언급합니다. 이 변화는 서버만 바꾸면 끝나는 문제가 아니라, 기존 MCP 클라이언트가 어떤 transport를 기대하는지도 확인해야 하는 문제입니다.

도구 호출 쪽도 가볍지 않습니다. 2.0 업그레이드 노트는 도구가 설정된 ChatClient 호출에서 ToolCallAdvisor가 자동 등록된다고 안내합니다. 예전 코드에서 `ToolCallAdvisor`를 명시적으로 체인에 넣었다면 advisor가 두 번 들어가는지, 순서가 바뀌는지, 의도한 tracing이나 retry 흐름이 유지되는지 확인해야 합니다.

ToolSpec fluent API도 같은 맥락입니다. 흩어진 `toolCallbacks`, `toolContext`, `toolNames` 사용을 계속 두기보다 `tools(...)`와 `defaultTools(...)` 쪽으로 이동하는 흐름을 검토할 때입니다. 당장 운영 코드 전체를 갈아엎으라는 뜻은 아니지만, 2.x 마이그레이션 브랜치에서는 컴파일 에러와 동작 차이를 분리해서 봐야 합니다.

 
 
 

도입 시뮬레이션: BOM 변경, 첫 테스트, 운영 점검

 

Spring Boot 3.5와 Spring AI 1.1.x 기반 서비스는 BOM을 1.1.7로 올리고 ChatClient, streaming, RedisVectorStore, Anthropic Skills API 파일 쓰기 흐름을 최소 회귀 테스트로 확인합니다. 2.0.0-M7은 별도 브랜치에서 MCP Streamable HTTP, ToolCallAdvisor 중복 등록, ToolSpec 전환, Gemini 2.5 Flash 경로를 compile-test와 smoke test로 검증하는 편이 좋습니다.

새 프로젝트라면 Spring AI 문서의 BOM 패턴을 기준으로 `org.springframework.ai:spring-ai-bom` 버전을 잡으면 됩니다. 이미 운영 중인 프로젝트라면 Maven `dependencyManagement` 또는 Gradle `platform`에서 Spring AI BOM 버전을 바꾸는 지점부터 찾는 것이 현실적입니다.

1.1.7 첫 테스트는 작게 잡는 편이 좋습니다. 기존 ChatClient smoke test, OpenAiChatModel streaming을 쓰는 경우 streaming 응답 누락 여부, RedisVectorStore를 쓰는 경우 삭제 회귀 테스트, Anthropic Skills API 파일 쓰기 흐름이 있으면 경로 이탈성 파일명을 넣은 통제 테스트를 확인합니다.

2.0.0-M7은 운영 업그레이드가 아니라 마이그레이션 실험으로 보는 편이 맞습니다. `spring.ai.mcp.server.protocol=STREAMABLE` 같은 MCP 서버 설정, 기존 SSE 클라이언트 호환성, 명시적 ToolCallAdvisor 등록, `tools(...)`와 `defaultTools(...)` 전환, Gemini 2.5 Flash 모델 참조, Google Client Library BOM 충돌 여부를 따로 보십시오.

실제로 확인할 부분은 코드 변경량보다 운영 신호입니다. 컴파일 실패, 앱 기동 실패, MCP handshake 오류, tool invocation trace 변화, streaming 응답 누락, vector store 삭제 결과, 사내 Nexus/Artifactory mirror 반영 여부를 배포 전 체크리스트로 두는 편이 낫습니다.

 

한국 Spring 개발자에게 남는 실무 의미

 

한국의 Java/Spring 기반 AI 서비스 개발자에게 이번 업데이트는 새 기능 홍보보다 업그레이드 분기점을 정리하는 신호에 가깝습니다. 1.1.7은 보안과 안정성 패치, 2.0.0-M7은 Spring Boot 4와 Spring AI 2.x 준비 상태를 확인하는 체크포인트로 보는 것이 현실적입니다.

한국에서는 Java/Spring 기반 백엔드가 여전히 많이 쓰이고, AI 기능은 기존 서비스에 붙는 형태가 많습니다. 그래서 이번 업데이트도 “새 데모를 만들어 본다”보다 “운영 중인 ChatClient와 tool calling이 유지되는가”가 더 중요합니다.

Gemini 2.5 Flash 변경도 마찬가지입니다. 릴리스 노트에 모델 참조와 Google Client Library BOM 업데이트가 들어갔다고 해서 품질, 비용, 지연시간이 자동으로 좋아진다고 말할 수는 없습니다. 모델 상수, 의존성 충돌, 응답 포맷, 사내 관측 지표를 먼저 봐야 합니다.

제가 보기에는 Spring AI 1.0.8 1.1.7 2.0.0-M7 release의 좋은 활용법은 팀별 분기입니다. 운영팀은 1.1.7과 CVE 조건을 먼저 보고, 플랫폼팀은 MCP와 advisor 체인을 검증하고, 연구/전환팀은 2.0.0-M7에서 ToolSpec과 Gemini 경로를 확인하면 됩니다.

 
 
 

주의할 점: 지금 건너뛰어도 되는 경우

 

MCP를 쓰지 않고 Spring Boot 4 전환 계획도 없다면 2.0.0-M7을 서둘러 운영 반영할 이유는 약합니다. 반대로 Spring AI 1.1.x와 Anthropic Skills API 파일 쓰기 흐름을 쓰는 팀은 1.1.7 보안 업데이트를 우선 검토해야 합니다.

2.0.0-M7은 흥미로운 릴리스지만, 운영 서비스에 바로 넣을 성격은 아닙니다. Spring Boot 4 준비가 안 됐거나, 제거·변경된 2.x 모듈에 의존하거나, MCP 클라이언트 호환성을 아직 확인하지 못했다면 실험 브랜치에서 멈추는 편이 합리적입니다.

또한 CVE-2026-41863을 모든 Spring AI 사용자에게 같은 긴급도로 말하는 것도 피해야 합니다. 공식 권고는 영향 범위와 조건을 제시합니다. 따라서 보안 담당자에게는 affected version, Anthropic Skills API, 파일 쓰기 경로, fixed version 1.1.7을 기준으로 전달하는 것이 정확합니다.

마지막으로 Gemini 2.5 Flash 관련 기대도 조절해야 합니다. 이번 문맥에서 확인된 것은 참조 모델과 Google Client Library BOM 업데이트입니다. 비용, 품질, 지연시간은 각 서비스 workload로 따로 재야 합니다.

 

자주 묻는 질문

 

Q. Spring AI 1.1.7은 보안 업데이트 때문에 바로 올려야 하나?
A. Spring AI 1.1.x를 운영 중이고 Anthropic Skills API 또는 파일 쓰기 skill 흐름이 있다면 우선 검토 대상입니다. 공식 권고는 CVE-2026-41863의 수정 버전으로 1.1.7을 제시하므로, BOM 변경 후 관련 회귀 테스트를 먼저 돌리는 것이 좋습니다.

Q. CVE-2026-41863은 어떤 조건에서 위험한가?
A. 공식 권고 기준으로는 Spring AI 1.1.0부터 1.1.x까지, Anthropic Skills API 지원, LLM 영향을 받은 파일명, 파일 쓰기 경로가 핵심 조건입니다. 이 조건 밖의 공격 시나리오는 공식 자료만으로 단정하지 않는 편이 정확합니다.

Q. Spring AI 2.0.0-M7은 안정 버전인가?
A. 아닙니다. GitHub 릴리스에서 프리릴리스로 표시되는 마일스톤입니다. Spring Boot 4 또는 Spring AI 2.x 마이그레이션을 준비하는 팀이 별도 브랜치에서 검증할 대상으로 보는 것이 맞습니다.

Q. MCP SSE transport deprecation과 Streamable HTTP 기본화는 무엇이 바뀐 것인가?
A. 2.0.0-M7에서 MCP 서버 transport 방향이 SSE 중심에서 Streamable HTTP 중심으로 이동하는 신호입니다. 기존 SSE 클라이언트가 있다면 서버 설정뿐 아니라 클라이언트 handshake와 호출 테스트를 같이 확인해야 합니다.

Q. 기존 ChatClient 코드에서 ToolCallAdvisor를 직접 넣었다면 무엇을 확인해야 하나?
A. 2.0 업그레이드 노트는 도구가 설정된 ChatClient 호출에서 ToolCallAdvisor가 자동 등록된다고 안내합니다. 직접 등록 코드가 남아 있으면 중복 등록, advisor 순서, tracing·retry 동작 변화를 확인해야 합니다.

Q. Gemini 2.5 Flash 업데이트는 Google GenAI 연동 코드에 어떤 영향을 줄 수 있나?
A. 릴리스 노트에서 확인되는 범위는 Gemini 2.5 Flash 참조와 Google Client Library BOM 업데이트입니다. 모델 상수, 의존성 충돌, 응답 포맷 테스트를 확인하되 품질·비용·지연시간 개선은 별도 벤치마크 전까지 주장하지 않는 편이 맞습니다.

함께 읽으면 좋은 글

 

참조 링크