스프링 AI 2.0으로 배우는 AI 에이전트 개발 완벽 가이드 (핵심 개념부터 모듈러 RAG, 툴 호출, MCP, 에이전트 스킬, 휴먼 인 더 루프까지실무 애플리케이션에 바로 적용

스프링 AI 2.0으로 배우는 AI 에이전트 개발 완벽 가이드 (핵심 개념부터 모듈러 RAG, 툴 호출, MCP, 에이전트 스킬, 휴먼 인 더 루프까지실무 애플리케이션에 바로 적용

$38.00
Description
자바와 스프링으로 만드는 엔터프라이즈 AI 에이전트 시스템!

AI 에이전트는 질문에 답하는 챗봇을 넘어 기업 문서를 검색하고, 외부 시스템의 툴을 호출하며, 여러 단계를 거쳐 실제 업무를 수행하는 시스템으로 발전하고 있습니다. 자바와 스프링에 익숙한 개발자도 기존 기술 스택 위에서 엔터프라이즈 AI 에이전트 시스템을 구축할 수 있습니다.

하지만 LLM API를 호출하는 것만으로는 충분하지 않습니다. RAG로 기업 지식을 연결하고, 툴 호출과 MCP로 업무 시스템을 연동하며, 사람의 승인(HITL)과 평가를 통해 실행을 통제해야 합니다. 모델 호출과 툴 실행도 관측 가능한 상태로 운영해야 신뢰할 수 있는 시스템을 만들 수 있습니다.

이 책은 챗 CLI를 단계적으로 확장하는 프로젝트 기반 실습으로 진행합니다. LLM과 단순 대화를 진행하는 기본 챗 CLI에서 시작해 RAG, 툴 호출, MCP를 차례로 결합하고, 마지막에는 파일 시스템과 MCP 툴, 툴 검색 메타 툴을 활용하는 AI 에이전트 CLI를 완성합니다. 개별 기술이 AI 에이전트 시스템 안에서 어떻게 연결되고 동작하는지 직접 구현하며 배워 보십시오.
저자

허제민

삼성SDS에서클라우드와데이터분석플랫폼을개발했고,SK플래닛에서대규모모니터링,A/B테스트,챗봇플랫폼을개발하고운영해온AI플랫폼엔지니어입니다.스프링AI오픈소스프로젝트에벡터저장소모듈을중심으로기여했으며,스프링AI커뮤니티인큐베이팅프로젝트인SpringAIPlayground를만들고리드메인테이너로활동하고있습니다.스프링AI기반엔터프라이즈AI에이전트시스템의설계와구현,스프링AI강의,기술집필에집중하고있습니다.

목차

▣01장:AI에이전트,새로운패러다임의시작
1.1LLM을넘어,스스로일하는‘에이전트’의시대로
1.2기업환경에서의AI기술도입
__1.2.1파이썬중심의AI개발생태계
__1.2.2자바AI개발생태계의전환:새로운가능성의시작
1.3스프링AI소개
__1.3.1스프링AI의목표
__1.3.2스프링생태계에서스프링AI의역할과장점
__1.3.3스프링AI의진화:AI통합의1.0에서에이전트의2.0으로
1.4이책의목표와구성
__1.4.1자바개발자를위한실용적인AI에이전트개발가이드

▣02장:스프링AI프레임워크
2.1주요특징과AI모델API설계방향
__2.1.1주요특징
__2.1.2AIModelAPI설계
2.2개발환경구축
__2.2.1올라마설치및로컬환경구성
__2.2.2프로젝트기본설정
__2.2.3간단한AI애플리케이션개발
2.3ChatModel과ChatClient
__2.3.1역할의분리:드라이버와클라이언트
__2.3.2ChatModel:통신방식과응답데이터
__2.3.3ChatResponse와응답메타데이터
__2.3.4ChatClientAPI활용
__2.3.5ChatClient의고급기능과AI에이전트로의확장
2.4프롬프트엔지니어링
__2.4.1Prompt설계철학
__2.4.2MessageAPI와역할기반설계
__2.4.3PromptTemplate:동적프롬프트관리
__2.4.4고급템플릿기법
__2.4.5효과적인프롬프트작성
__2.4.6ChatOptions활용
__2.4.7모델전용옵션활용과설정전략
__2.4.8다양한프롬프트엔지니어링기법
2.5토큰
__2.5.1토큰의구조와개발자의관점
__2.5.2한국어토큰효율성의진화
__2.5.3하이브리드프롬프트전략
2.6구조화한출력
__2.6.1프레임워크주도프롬프트엔지니어링
__2.6.2구조화한출력의아키텍처
__2.6.3StructuredOutputConverter구현체
__2.6.4다양한StructuredOutputConverter구현체사용방법
__2.6.5네이티브구조화한출력
2.7대화메모리와컨텍스트관리
__2.7.1ChatMemory인터페이스와기본구현체
__2.7.2ChatMemoryRepository저장소유형별상세분석
__2.7.3ChatMemoryRepository의유연한저장소전환
__2.7.4단기기억과장기기억의연동패턴
__2.7.5수동단기기억관리
2.8어드바이저체인
__2.8.1어드바이저API클래스구조
__2.8.2어드바이저실행흐름과스택구조
__2.8.3동기식처리vs스트리밍처리
__2.8.4어드바이저구현과내장어드바이저
__2.8.5어드바이저기반제어:차단과대체
__2.8.6어드바이저구현원칙과배치전략
__2.8.7스프링AI어드바이저:프레임워크의코어와확장성
2.9AI챗봇CLI프로젝트
__2.9.1CLI와AI의만남
__2.9.2프로젝트구조및설정
__2.9.3단계별챗CLI구현
__2.9.4최종CLI챗봇개발
__2.9.5정리

▣03장:스프링AI와RAG
3.1RAG등장배경과아키텍처
__3.1.1LLM의구조적한계와데이터공백
__3.1.2데이터공백을채우는기술:파인튜닝vs주입
__3.1.3스프링AI의RAG아키텍처
__3.1.4ETL파이프라인프레임워크
3.2ETL파이프라인DocumentReader구현
__3.2.1텍스트파일에서추출
__3.2.2JSON에서추출
__3.2.3PDF에서추출
__3.2.4마크다운에서추출
__3.2.5HTML에서추출
__3.2.6범용문서추출
__3.2.7커스텀DocumentReader구현
3.3ETL파이프라인DocumentTransformer구현
__3.3.1문서변환과정제
__3.3.2메타데이터포맷통일
__3.3.3메타데이터에키워드추가
__3.3.4문맥요약추가
__3.3.5커스텀DocumentTransformer구현
__3.3.6DocumentTransformer파이프라인통합
3.4ETL파이프라인DocumentWriter구현
__3.4.1파일에적재
__3.4.2커스텀DocumentWriter구현
3.5임베딩모델
__3.5.1임베딩의개념과작동원리
__3.5.2EmbeddingModelAPI구조
__3.5.3임베딩모델구동방식:클라우드와로컬
__3.5.4CPU기반로컬임베딩모델성능과한글지원임베딩모델
3.6벡터데이터베이스
__3.6.1VectorStore인터페이스상세
__3.6.2검색요청(SearchRequest)
__3.6.3메타데이터필터
__3.6.4벡터데이터베이스스키마
__3.6.5대량문서의배치데이터적재
__3.6.6벡터데이터베이스의데이터생명주기관리(삭제와수정)
__3.6.7다양한벡터데이터베이스
__3.6.8내장인메모리벡터데이터베이스(SimpleVectorStore)
3.7스프링AI의RAG프레임워크
__3.7.1RAG의진화와패러다임
__3.7.2NaiveRAG구현
__3.7.3AdvancedRAG구현
__3.7.4모듈러RAG를구성하는모듈
__3.7.5모듈러RAG의전처리단계구현
__3.7.6모듈러RAG의검색,후처리,생성단계구현
__3.7.7모듈러RAG오케스트레이션
3.8RAGAI챗봇CLI프로젝트
__3.8.1프로젝트목표와설정
__3.8.2오프라인ETL파이프라인구현
__3.8.3런타임RAG파이프라인구현
__3.8.4RAGCLI챗봇개발

▣04장:툴호출
4.1AI모델의툴호출환경
__4.1.1툴호출의등장:LLM이현실세계와연결되다
4.2툴호출설계
__4.2.1스프링AI툴호출의특징
__4.2.2툴호출진행과정
__4.2.3툴명세
__4.2.4툴컨텍스트와직접반환
__4.2.5툴호출결과변환
4.3툴구현
__4.3.1메서드를툴로구현하기
__4.3.2함수를툴로구현하기
__4.3.3툴구현방식비교및선택
__4.3.4툴을AI모델에전달하는방법
4.4툴실행
__4.4.1ToolCallingManagerAPI
__4.4.2DefaultToolCallingManager의내부구현
__4.4.3프레임워크-제어툴실행
__4.4.4어드바이저-제어툴실행
__4.4.5사용자가제어하는툴실행
4.5툴지원AI챗봇CLI프로젝트
__4.5.1프로젝트목표와설정
__4.5.2단계별툴호출CLI구현
__4.5.3툴지원AI챗봇CLI개발

▣05장:스프링AIMCP
5.1MCP기본(호스트/클라이언트/서버,프리미티브,전송)
__5.1.1MCP아키텍처
__5.1.2자바MCP스택아키텍처
__5.1.3자바MCP클라이언트서버아키텍처
__5.1.4직접툴호출vsMCP툴호출
5.2스프링AIMCP클라이언트
__5.2.1MCP클라이언트부트스타터
__5.2.2MCP클라이언트공통설정
__5.2.3MCP클라이언트STDIO설정
__5.2.4MCP클라이언트원격서버설정
__5.2.5MCP클라이언트의headers를사용한원격서버보안설정
__5.2.6MCP클라이언트기능구현
__5.2.7MCP클라이언트애너테이션
5.3스프링AIMCP서버
__5.3.1MCP서버부트스타터
__5.3.2MCP서버공통설정
__5.3.3MCP서버프로토콜설정
__5.3.4MCP서버툴기능구현
__5.3.5MCP서버다양한기능구현
__5.3.6MCP서버클라이언트양방향기능구현
__5.3.7MCP서버애너테이션
__5.3.8MCP서버애너테이션사용툴구현
__5.3.9MCP서버애너테이션사용툴서버유형별구현
__5.3.10MCP서버애너테이션사용추가기능구현
__5.3.11MCP서버애너테이션사용추가기능서버유형별구현
5.4스프링AIMCP보안
__5.4.1MCP보안환경
__5.4.2스프링AI의MCP시큐리티
__5.4.3MCP클라이언트시큐리티공통설정
__5.4.4MCP클라이언트시큐리티세부구현
__5.4.5MCP서버시큐리티구성
__5.4.6MCP인가서버구성
5.5MCP기반AI챗봇CLI프로젝트
__5.5.1프로젝트목표와설정
__5.5.2단계별MCP서버구현
__5.5.3단계별MCP클라이언트구현
__5.5.4MCP기반AI챗봇CLI구현

▣06장:AI에이전트
6.1AI에이전트와실행루프
__6.1.1워크플로와자율에이전트
__6.1.2워크플로패턴
__6.1.3자율에이전트
__6.1.4스프링AI가지원하는자율에이전트개발
__6.1.5실용적AI에이전트구현
6.2컨텍스트엔지니어링
__6.2.1프롬프트엔지니어링에서컨텍스트엔지니어링으로
__6.2.2생각의사슬의프롬프트설계와추론AI모델
__6.2.3리액트:에이전트행동방식
__6.2.4컨텍스트엔지니어링을사용하는LLM과에이전트시스템
6.3재귀적어드바이저와툴루프제어
__6.3.1툴루프의두가지방식
__6.3.2재귀적어드바이저의처리흐름
__6.3.3ToolCallingAdvisor를사용한툴루프제어
__6.3.4ToolCallingAdvisor의훅과파라미터증강
__6.3.5구조화한출력교정루프
6.4스프링AI에이전트개발
__6.4.1AI에이전트서비스구조:클로드코드,코덱스,오픈코드,오픈클로
__6.4.2멀티에이전트와에이전트연결표준
__6.4.3스프링AI에이전트아키텍처와구현
__6.4.4사용자개입워크플로(HITL):MCPElicitation을통한툴사용권한제어
__6.4.5동적툴탐색
6.5커뮤니티지원으로확장하는스프링AI에이전트
__6.5.1범용에이전트스킬
__6.5.2가정대신질문하는툴(AskUserQuestionTool)
__6.5.3작업계획작성툴(TodoWriteTool)
__6.5.4멀티에이전트지원하

출판사 서평

★이책에서다루는내용★

◎LLM과AI에이전트의핵심개념부터스프링AI2.0기반AI애플리케이션개발까지
◎프롬프트엔지니어링,구조화한출력,대화메모리,어드바이저체인
◎문서수집(extract),변환(transform),적재(load)와벡터데이터베이스
◎기본RAG와고급RAG설계및구현
◎자바메서드와외부시스템을연결하는툴호출
◎MCP(ModelContextProtocol)클라이언트와서버구현
◎툴검색메타툴과MCP툴을활용한에이전트능력확장
◎에이전트스킬과하위에이전트를활용하는AI에이전트구현
◎채널,오케스트레이션,능력,파운데이션으로구성된AI에이전트서비스4-티어아키텍처정의
◎사람의승인,평가와검증,관측가능성을갖춘엔터프라이즈AI에이전트시스템완성