Spring AI 2.0.0 GA 출시! 개발 경험 향상

by DD
23시간 전
조회수 0

Spring AI 2.0.0 GA 버전 출시로 Maven Central에서 사용 가능하며, 개발 경험 향상을 목표로 함

Spring Boot 4 및 Spring Framework 7 기반으로 업그레이드되었으며, Jackson 3 및 Null-safety 도입으로 안정성 강화

OpenAI, Anthropic 등 주요 AI 모델 지원 통합Agentic AI 시스템 지원 강화로 기능 확장

Spring Boot 4 및 Null-safety 도입 배경

Spring AI 2.0은 Spring Boot 4.0/4.1 및 Spring Framework 7.0 기반으로 설계되어 최신 Java 생태계와의 호환성을 확보했습니다. 특히, JSpecify 애노테이션을 활용한 코드베이스의 Null-safety 강화는 런타임 NullPointerException 방지뿐만 아니라, Kotlin과의 호환성을 높이고 값의 필수 여부를 명확히 하여 개발 생산성 향상(Developer Experience Improvement)에 기여합니다. 또한, 옵션 처리 방식의 리팩토링을 통해 빌더 패턴(Builder Pattern) 기반의 불변 객체(Immutable Object) 생성 및 설정 프로퍼티 키(Property Key)의 `.options` 세그먼트 제거로 코드의 일관성과 안정성을 높였습니다.

AI 모델 지원 통합 및 확장성 개선

이번 릴리스는 OpenAI, Anthropic, Google GenAI 등 주요 AI 모델 제공자들의 SDK를 통합하여 최신 API 확장 및 기능 지원에 신속하게 대응할 수 있도록 구조를 개선했습니다. 기존의 여러 구현 방식을 단일 SDK로 통합함으로써 코드의 일관성(Code Consistency)을 확보하고, 외부 벤더(Vendor)와의 협력을 통해 OCI Generative AI, Azure Cosmos DB 등 모델 지원을 강화했습니다. 이는 향후 새로운 모델이나 API 변경 사항에 대한 유연한 적응(Flexible Adaptation)을 가능하게 하여 프로젝트의 지속 가능한 발전을 지원합니다.

Agentic AI 시스템 지원 강화 및 도구 통합

Spring AI 2.0은 Agentic AI 시스템 구축을 위한 기반을 대폭 강화했습니다. 기존 1.x 버전에서 각 모델 구현 내부에 묻혀있던 도구 실행 루프(Tool Execution Loop)를 Advisor 체인(Advisor Chain)으로 분리하여, 개발자가 도구 실행 과정을 가로채거나(Intercept) 재구성(Compose)할 수 있도록 했습니다. `ToolCallingAdvisor`는 기본적으로 등록되어 전체 도구 호출 왕복(Round-trip)을 처리하며, `ToolSearchToolCallingAdvisor`는 수백 개의 도구(Hundreds of Tools)를 점진적으로 노출하여 모델이 필요할 때 관련 도구를 검색하도록 지원합니다. 이는 복잡한 에이전트 로직 구현의 유연성을 크게 향상시킵니다.

구조화된 출력 및 커뮤니티 협업 강화

모델이 비정형 JSON을 반환하는 경우에도 `StructuredOutputValidationAdvisor`를 통해 자동 수정하여 안정적인 구조화된 출력(Structured Output)을 보장합니다. 또한, 커뮤니티 기여의 증가에 발맞춰 `CONTRIBUTING.md` 문서를 새롭게 정비하여 코드 기여 규칙과 컨벤션을 명확히 했습니다. 이는 코드 품질 향상(Code Quality Improvement)과 함께 커뮤니티 기여의 통합 속도를 높이는 데 기여할 것으로 기대됩니다. 특히, 코딩 에이전트 관련 PR이 증가함에 따라 인간 검토(Human Review)의 중요성을 강조하고 있습니다.

MCP(Model Context Protocol) 통합 및 확장

Spring AI 2.0은 AI 통합을 위한 공통 프로토콜로 부상하는 MCP(Model Context Protocol) 지원을 강화했습니다. 공식 MCP Java SDK 2.0.0을 통합하여 최신 사양을 준수하며, `@McpTool`, `@McpResource` 등의 애노테이션을 통해 Spring 서비스를 MCP 서버로 쉽게 노출할 수 있습니다. 또한, WebMVC 및 WebFlux 전송 구현을 Spring AI로 이전하여 릴리스 주기를 맞추고, 스트림 방식(Streamable HTTP)을 기본 전송으로 채택했습니다. 이를 통해 서버 및 클라이언트 측 모두에서 반응형 에이전트 클라이언트(Reactive Agent Clients) 개발을 지원합니다.

Spring AI 2.0.0 GA Available Now