드디어 AI 개발이 더 안정적이고 쉬워집니다: Spring AI 1.1.1 릴리즈

최근 몇년간 AI 기술의 발전 속도는 정말 놀랍다. 특히 백엔드 영역에서 Java와 Spring Boot를 사용해 LLM기반 서비스를 구축하려는 요구가 폭발적으로 증가하고 있다. 이러한 흐름의 중심에는 단연 Spring AI가 있다.
Spring AI 팀에서 안정성과 기능을 대폭 끌어올린 Spring AI 1.1.1 버전을 정식 발표했다. 이번 릴리즈는 단순한 버그 수정 이상의 의미를 가지며, 실무에서 AI 기능을 안정적으로 구현하려는 개발자들에게 매우 반가운 소식이 될 것 같다.
이번 포스팅에서는 Spring AI 1.1.1의 주요 변경점을 자세히 살펴보고, 실제 프로젝트에서 얻을 수 있는 이점에 대해서 정리해 보고자 한다.

이번 업데이트의 핵심은 무엇인가?

Spring AI 1.1.1은 공식 OpenAI Java SDK 통합 및 강화된 구조화 출력(Structured Output) 지원을 통해 AI 애플리케이션 개발의 안정성과 생산성을 크게 높이고 주요 버그 및 보안 패치가 포함된 핵심 안정화 릴리즈다.

주요 변경사항

이번 1.1.1 릴리즈는 13개의 새로운 기능과 16개의 버그 수정, 그리고 2건의 CVE 보안 패치를 포함한 5개의 의존성 업데이트가 적용되었다. 이중에서 특히 백엔드 개발자가 주목해야 할 3가지 핵심 변경점은 다음과 같다.

OpenAI Java SDK와의 공식 통합 (Type-Safe API)

OpenAI를 사용하는 Spring AI 개발자들에게 가장 큰 변화이자 환영할 만한 소식이다.

  • 변경내용: 기존에는 내부적으로 OpenAI API를 직접 다루는 방식이었지만 이번 릴리즈부터 공식 OpenAI Java SDK와의 네이티브 통합을 제공한다.
  • 개발자이점: 공식 SDK를 사용함으로써 타입 안정성이 대폭 개선되었다. API응답과 요청 객체를 더 안전하게 다룰 수 있으며 공식 SDK가 제공하는 모든 기능을 빠짐없이 활용할 수 있게 되어 개발 편의성이 극대화될 전망이다.

ChatClient의 구조화 출력 (Structured Output) 기본 지원 강화

LLM을 사용할 때 가장 까다로운 부분 중 하나는 텍스트로 받은 응답을 우리가 원하는 정형화된 데이터(ex. JSON)로 정확하게 변환하는 것이다.

  • 변경내용: ChatClient가 구조화 출력(Structured Output)을 더욱 안정적으로 지원하도록 개선되었다.
  • 개발자이점: AI 모델로부터 JSON이나 YAML같은 구조화된 데이터를 요청할 때 오류 없이 신뢰성 있게 추출할 수 있다. 이는 특히 복잡한 비즈니스 로직에서 AI응답을 DTO나 엔티티로 변환해야 할 때 발생하는 파싱 오류를 줄여주어 개발 생상성을 크게 높여준다.

예를 들어 다음과 같이 ChatClient를 사용하면 복잡한 프롬프트 엔지니어링 없이도 Java record 타입이나 클래스로 깔끔하게 매핑된 결과를 얻을 수 있다.

// 1. 원하는 응답 구조를 Record로 정의
public record ActorFilms(String actor, List<String> movies) {}
Java

다음은 ChatClient API를 사용하여 BeanOutputConverter를 적용하는 방법이다.

ActorsFilms actorsFilms = ChatClient.create(chatModel).prompt()
        .user(u -> u.text("Generate the filmography of 5 movies for {actor}.")
                    .param("actor", "Tom Hanks"))
        .call()
        .entity(ActorsFilms.class);  //자동 매핑 지원
Java

혹은 로우 레벨의 ChatModel API를 직접 사용할 수 있다.

BeanOutputConverter<ActorsFilms> beanOutputConverter =
    new BeanOutputConverter<>(ActorsFilms.class);

String format = this.beanOutputConverter.getFormat();

String actor = "Tom Hanks";

String template = """
        Generate the filmography of 5 movies for {actor}.
        {format}
        """;

Generation generation = chatModel.call(
    PromptTemplate.builder().template(this.template).variables(Map.of("actor", this.actor, "format", this.format)).build().create()).getResult();

ActorsFilms actorsFilms = this.beanOutputConverter.convert(this.generation.getOutput().getText());
Java

최신 LLM 모델 및 인프라 기능 지원 확대

Spring AI는 특정 모델에 종속되지 않고 다양한 클라우드와 LLM을 지원하는 것을 목표로 한다. 이번 업데이트 에서는 핵심 제공업체들의 최신 기능이 빠르게 반영되었다.

  • Claude 강화: Claude 4.5 모델(Opus, Haiku)지원이 추가되었으며, Skills API 및 Files API 통합이 적용되어 파일을 활용한 고급 상호작용이 가능해졌다.
  • Google Gemini 개선: ThinkingLevel 설정 지원이 추가되어 추론 과정에 대한 더 세밀한 제어가 가능해 졌고 Vertex Gemini 통합 시 응답 데이터에 Safety Ratings(안전 등급) 정보가 포함되어 운영 안정성이 높아졌다.
  • RAG 인프라 개선: 벡터 스토어 필드에 ‘ISNULL’, ‘ISNOTNULL’ 표현식이 추가되어 RAG(검색 증강 생성) 구성 시 데이터 필터링의 유연성이 향상되었다.

이 업데이트를 실제 프로젝트에 적용한다면?

Spring AI 1.1.1을 도입했을 때 실질적인 이점은 바로 개발 생성성시스템 안정성의 동시 확보라고 할 수 있다.

버그 없는 AI 응답 파싱 환경 구축

가장 큰 실무적 이득은 구조화 출력의 신뢰성 향상이다.
이전에는 LLM이 JSON을 완벽하게 생성하지 못할 경우, 이를 처리하는 후처리 로직이나 예외 처리 코드가 복잡했다. 하지만 1.1.1 버전에서 구조화 출력이 강화되면서 개발자는 LLM의 응답을 신뢰하고 Java 객체로 바로 매핑하여 비즈니스 로직에 집중할 수 있게 되었다. 이는 코딩량 감소와 테스트 용이성 증대로 이어질 수 있다.

엔터프라이즈 환경에서의 안정성 확보

이번 릴리즈에는 중요한 보안패치가 포함되어 있다. 특히 Apache Commons 라이브러리의 CVE 취약점(무한루프, 자원할당등)에 대한 업데이트는 엔터프라이즈 환경에서 필수적인 조치라고 할 수 있다.
또한 Azure Cosmos DB Chat Memory 자동 구성 지원이 추가되어 이미 Azure 환경을 사용 중인 기업은 세션 메모리 기능을 별도의 설정 없이 Spring Boot Starter를 통해 쉽게 통합할 수 있다. 이는 클라우드 인프라 활용도를 높여준다.

미래 지향적인 아키텍처 준비 (2.0.0 대비)

Spring AI팀은 다음 중에 Spring AI 2.0.0-M1 릴리즈를 예고했다. 1.1.1은 1.X 라인의 안정화와 기능 확장 마무리 단계로 볼 수 있으며 이 버전을 사용해 주요 기능을 미리 테스트하고 안정화하는 것은 곧 2.0.0 버전으로의 마이그레이션을 위한 훌륭한 디딤돌이 될 것이다.


Spring AI 1.1.1 릴리즈는 LLM을 활용한 애플리케이션 개발이 점점 성숙해지고 있다는 증거다. LLM 제공사(OpenAI, Anthropi, Google)의 최신 기술을 빠르게 수용하고 개발자가 가장 불편했던 타입 안정성과 구조화 데이터 처리 문제를 해결하했다.
AI 기능을 도입하려는 모든 Spring Boot 개발자 분들은 이번 1.1.1 버전으로 업데이트하여 더욱 강력하고 안정적인 AI 백엔드 서비스를 구축하기 바란다.


참고

https://spring.io/blog/2025/12/05/spring-ai-1-1-1-available-now