Spring Boot

Spring AI 2.0과 Spring Boot 4 - AI 퍼스트 Java 개발의 시작

백엔드 개발자 김승원 2026. 4. 1. 10:44

Java 생태계, AI 시대에 어떻게 대응하고 있나

2025년 11월 Spring Boot 4가 정식 출시되었고, Spring AI 2.0은 2026년 중반 GA를 목표로 빠르게 성숙하고 있습니다. Java 진영이 AI 통합을 어떻게 풀어가고 있는지, 두 프로젝트의 핵심 변화와 실무 적용 전략을 정리합니다.

1. Spring Boot 4 주요 변경점

Spring Boot 4는 단순한 버전 업이 아니라, Java 플랫폼의 현대화를 반영한 구조적 전환입니다.

Jakarta EE 11 기반

Spring Boot 4는 Jakarta EE 11을 기반으로 합니다. Jakarta EE 10에서 시작된 javax에서 jakarta로의 네임스페이스 전환이 완전히 정착된 상태이며, 새로운 API 표준들이 추가되었습니다. 기존 Spring Boot 3.x에서 마이그레이션하는 경우 큰 변화는 없지만, Spring Boot 2.x에서 직접 올라오는 프로젝트라면 네임스페이스 변환 작업이 필수적입니다.

70개 이상의 집중화된 모듈

Spring Boot 4는 70개 이상의 포커싱된 모듈로 재편되었습니다. 기존에는 하나의 starter에 다양한 기능이 묶여 있어서 불필요한 의존성이 함께 딸려오는 경우가 많았습니다. 이번 모듈화를 통해 필요한 기능만 정확하게 선택하여 포함시킬 수 있게 되었고, 결과적으로 애플리케이션의 시작 시간 단축과 메모리 사용량 감소에 기여합니다.

Java 25 지원

Java 25를 공식 지원합니다. Virtual Thread의 안정화, 패턴 매칭 확장, Value Object 등 최신 Java 언어 기능을 Spring 프레임워크 레벨에서 적극 활용할 수 있습니다. 특히 Virtual Thread는 Spring WebFlux 없이도 높은 동시성을 달성할 수 있는 경로를 제공하므로, 리액티브 프로그래밍의 복잡성 없이 확장 가능한 서버를 구축할 수 있습니다.

2. Spring AI 2.0 - @Tool 어노테이션과 함수 호출

Spring AI 2.0의 가장 핵심적인 기능 중 하나는 @Tool 어노테이션을 통한 LLM 함수 호출(function calling) 지원입니다.

함수 호출이란, LLM이 응답을 생성하는 과정에서 특정 기능이 필요하다고 판단하면 미리 정의된 함수를 호출하고, 그 결과를 활용하여 최종 응답을 만드는 메커니즘입니다. Spring AI에서는 이를 Java 메서드에 @Tool 어노테이션을 붙이는 것만으로 구현할 수 있습니다.

@Tool(description = "주어진 도시의 현재 날씨 정보를 조회합니다")
public WeatherInfo getWeather(String city) {
    return weatherService.getCurrentWeather(city);
}

이 메서드를 등록해두면, 사용자가 "서울 날씨 어때?"라고 질문했을 때 LLM이 자동으로 getWeather("서울")을 호출하고, 반환된 실시간 데이터를 바탕으로 자연어 응답을 구성합니다. 기존에는 이런 연동을 위해 상당량의 보일러플레이트 코드가 필요했지만, @Tool 하나로 대폭 간소화되었습니다.

실무에서의 활용 패턴

데이터베이스 조회, 외부 API 호출, 비즈니스 로직 실행 등을 @Tool로 감싸면, LLM이 필요에 따라 이 기능들을 조합하여 복잡한 질의에 응답할 수 있습니다. 예를 들어 "지난달 매출 상위 5개 제품을 차트로 보여줘"라는 요청에 대해, 데이터 조회 Tool과 차트 생성 Tool을 순차적으로 호출하는 식입니다.

3. MCP 통합 - 클라이언트와 서버 양방향 지원

Spring AI 2.0은 MCP(Model Context Protocol)를 클라이언트와 서버 양쪽 모두에서 지원합니다. 이는 Spring 애플리케이션이 MCP 클라이언트로서 외부 MCP 서버의 도구를 활용할 수도 있고, 반대로 MCP 서버로서 자신의 기능을 외부에 노출할 수도 있다는 뜻입니다.

클라이언트 모드에서는 다양한 MCP 서버들이 제공하는 도구(파일 시스템 접근, 데이터베이스 쿼리, 웹 검색 등)를 Spring AI 애플리케이션에서 바로 사용할 수 있습니다. 서버 모드에서는 Spring Boot로 구축한 비즈니스 로직을 MCP 프로토콜을 통해 외부 AI 에이전트에게 제공할 수 있습니다.

이 양방향 지원은 엔터프라이즈 AI 아키텍처에서 특히 중요합니다. 기업 내부의 다양한 Spring 기반 마이크로서비스들이 MCP 서버로 기능하면, AI 에이전트가 이들을 자유롭게 조합하여 복잡한 업무를 자동화할 수 있는 기반이 마련됩니다.

4. Agent Skills - 개방형 표준으로 에이전트 연결

Agent Skills는 Anthropic이 제안한 개방형 표준으로, AI 에이전트가 자신의 능력을 선언하고 다른 에이전트나 도구에서 이를 발견·활용할 수 있게 하는 규격입니다. Spring AI 2.0이 이 표준을 지원함으로써, Spring으로 만든 에이전트가 Claude Code, OpenAI Codex, JetBrains Junie 등 다양한 AI 코딩 도구에서 인식되고 호출될 수 있습니다.

이것은 벤더 종속을 탈피하는 중요한 진전입니다. 하나의 Spring AI 에이전트를 만들어두면, 어떤 AI 플랫폼에서든 동일하게 활용할 수 있으므로 개발 투자의 효율성이 극대화됩니다.

5. Agentic Patterns과 A2A 프로토콜

Spring AI 2.0은 에이전틱 패턴(Agentic Patterns)을 프레임워크 레벨에서 지원합니다. 그중 핵심이 A2A(Agent-to-Agent) 프로토콜입니다. 이는 여러 AI 에이전트가 서로 협력하여 복잡한 작업을 분담 처리하는 구조를 구현하기 위한 통신 규약입니다.

예를 들어 "신규 기능 개발" 작업을 요청하면, 설계 에이전트가 아키텍처를 수립하고, 코딩 에이전트가 구현을 담당하며, 테스트 에이전트가 검증을 수행하는 파이프라인을 A2A 프로토콜로 구성할 수 있습니다. 각 에이전트는 독립적으로 발전시킬 수 있으면서도, 프로토콜을 통해 유기적으로 협업합니다.

총평 - Java 개발자를 위한 AI 진입로가 열렸다

Spring Boot 4가 플랫폼의 현대화를 완성했고, Spring AI 2.0이 그 위에 AI 통합의 표준을 세우고 있습니다. @Tool 어노테이션은 Java 개발자에게 익숙한 방식으로 LLM 연동을 제공하며, MCP와 Agent Skills를 통한 생태계 연결은 엔터프라이즈 환경에서의 실질적인 AI 활용을 가능하게 합니다.

Python 중심이었던 AI 개발 생태계에서, Spring AI는 Java 진영이 뒤처지지 않기 위한 전략적 교두보입니다. 엔터프라이즈 Java 개발자라면 지금이 Spring AI를 학습하고 실험해볼 적기입니다.