A2A(Java SDK)는 멀티 에이전트 시스템을 손쉽게 구현할 수 있도록 돕는 자바 기반 개발 도구입니다. 최근 공개된 A2A Java SDK 0.3.0.Beta1 버전에서는 개발자들이 특히 반가워할 기능인 HTTP+JSON/REST 전송(Transport) 지원이 추가되었습니다.
기존에는 gRPC나 JSON-RPC와 같은 전송 방식에만 의존해야 했지만, 이제 널리 사용되는 REST 방식을 활용할 수 있게 되면서 개발 환경은 한층 더 유연해졌습니다. 이번 글에서는 A2A 서버 에이전트와 클라이언트에서 REST 전송을 활성화하고 사용하는 방법을 단계별로 살펴보겠습니다.
A2A Java SDK란 무엇인가
A2A SDK는 여러 개의 에이전트가 서로 통신하며 협력할 수 있는 멀티 에이전트 시스템(Multi-Agent System) 을 쉽게 구축할 수 있도록 돕는 개발 키트입니다.
주요 특징은 다음과 같습니다.
- 에이전트(Server/Client) 간 통신을 단순화
- 다양한 전송 프로토콜(Transport) 지원
- 시스템 확장성과 상호 운용성 강화
특히 이번 0.3.0.Beta1 버전의 핵심은 REST 전송 추가 지원입니다. HTTP를 기반으로 하기 때문에 기존 웹 인프라와 손쉽게 통합할 수 있으며, JSON 포맷을 통해 직관적이고 표준화된 데이터 교환이 가능합니다.
서버 에이전트에서 REST Transport 활성화
1. 의존성 추가
서버 에이전트가 REST 전송을 지원하려면 다음 의존성을 pom.xml에 추가해야 합니다.
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-reference-rest</artifactId>
</dependency>
이 라이브러리는 A2A 프로토콜을 HTTP+JSON/REST 방식으로 구현하는 데 필요한 클래스와 엔드포인트를 제공합니다.
2. 에이전트 카드 업데이트
REST 전송을 지원하려면 에이전트 카드를 수정해 전송 방식을 지정합니다.
@Produces
@PublicAgentCard
public AgentCard agentCard() {
return new AgentCard.Builder()
.url("http://localhost:8080") // 서버의 기본 URL
.preferredTransport(TransportProtocol.HTTP_JSON.asString()) // 선호 전송 방식
.additionalInterfaces(List.of(
new AgentInterface(TransportProtocol.HTTP_JSON.asString(),
"http://localhost:8080")
))
.build();
}
구성 요소 설명:
- url: 서버의 REST 엔드포인트 주소
- preferredTransport: REST(HTTP+JSON)를 기본 전송 방식으로 지정
- additionalInterfaces: 필요 시 다른 전송 방식(gRPC, JSON-RPC 등)도 함께 선언 가능
클라이언트에서 REST Transport 활성화
1. 기본 의존성 추가
클라이언트에서는 먼저 A2A 클라이언트 라이브러리를 프로젝트에 포함해야 합니다.
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-client</artifactId>
</dependency>
2. REST 전송 의존성 추가
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-client-transport-rest</artifactId>
</dependency>
3. REST 클라이언트 생성
클라이언트 객체를 생성할 때 withTransport 메서드를 사용해 REST 방식을 명시합니다.
// REST 클라이언트 생성
Client client = Client
.builder(agentCard)
.withTransport(RestTransport.class, new RestTransportConfig())
.build();
핵심 포인트는 다음과 같습니다.
- 최소 하나 이상의 전송 방식은 반드시 설정해야 함
- withTransport를 통해 REST 외에도 다른 전송 방식을 추가할 수 있음
A2A Java SDK 0.3.0.Beta1 릴리스는 멀티 에이전트 시스템 개발자들에게 중요한 전환점이 될 수 있습니다.
- REST 지원을 통해 기존 웹 서비스와 손쉽게 통합 가능
- 다양한 전송 프로토콜 선택으로 환경별 유연성 확보
- 확장성과 상호 운용성이 강화되어 복잡한 멀티 에이전트 아키텍처 구현이 한층 용이
결론적으로, 이번 업데이트는 개발자들이 보다 직관적이고 호환성 높은 멀티 에이전트 시스템을 구축할 수 있도록 돕습니다. REST 전송의 추가는 단순히 새로운 기능을 넘어, 실무에서 활용 범위를 크게 넓히는 계기가 될 것입니다.
A2A Java SDK: Support for the REST Transport is Now Here
Quarkus: Supersonic Subatomic Java
quarkus.io

'JAVA' 카테고리의 다른 글
| Java 25 완전 정복 가이드: 새로운 기능으로 배우는 생산성과 보안성의 진화 (0) | 2025.10.13 |
|---|---|
| Java, 어떻게 더 성장할까? – Brian Goetz가 말하는 ‘확장 가능한 언어’와 Witness 개념 (0) | 2025.09.23 |
| Java 25: 초보자에게는 더 쉬워지고, 개발자에게는 AI 시대를 준비하는 언어로 (0) | 2025.09.21 |
| Java 25 정식 출시: 개발자들이 꼭 알아야 할 핵심 변화와 기능 (0) | 2025.09.18 |
| 자바 30주년: 세상을 바꾼 코드, 그리고 그 천재의 이야기 (0) | 2025.05.19 |