
구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.
지은이 : 박매일
서울과학기술대학교 컴퓨터공학과를 졸업하고 20년 넘게 현장과 강단을 오가며 백엔드 개발자를 양성해 온 전문 엔지니어다. 스마트인재개발원 교육부장을 역임하고 교육 기획과 운영을 총괄했으며, 한양대학교 ERICA, 코스콤, 한국전력공사, 인공지능사관학교, 구름 등 학계와 다양한 기업 현장에서 자바와 스프링을 강의했다. 특히 정보통신산업진흥원(NIPA), 한국산업기술진흥원(KIAT), 고용노동부, 한국산업인력공단 등 주요 기관의 IT 국비 교육 및 해외취업 연수사업을 성공적으로 운영해 왔다.현재 인프런과 패스트캠퍼스에서 자바 대표 강사로 활동하며 실무 중심의 콘텐츠를 전파하고 있다. "이론보다 작동하는 코드로 가르친다"는 철학 아래, 최근에는 AI 시대의 자바 개발자를 위한 스프링 AI와 AI 에이전트 분야의 생태계 확장에 힘쓰고 있다.저자와 소통할 수 있는 공간? 인프런 inflearn.com/users/@bitcocom? 깃허브 github.com/parkmaeil/DoItSpringAI
첫째마당 스프링 AI 기초 다지기
01장 AI 애플리케이션과 스프링 AI
_01-1 스프링 AI 이해하기
__AI 애플리케이션이란 무엇일까?
__스프링과 AI를 쉽게 연결하는 방법 - 스프링 AI
__스프링 AI의 핵심 기능
_01-2 AI 애플리케이션의 핵심 개념
__AI 모델
__토큰
__프롬프트
__구조화된 출력
__벡터와 벡터 공간
__AI 모델의 데이터와 API 확장
01장 되새김 문제
02장 스프링 AI 시작하기
_02-1 스프링 AI의 개발 환경 준비하기
__[Do it! 실습] 인텔리제이 설치하기
__ [Do it! 실습] 인텔리제이 플러그인 설치하기
__ [Do it! 실습] 포스트맨 설치하기
_02-2 AI 모델의 사용 환경 준비하기
__오픈AI의 API
__[Do it! 실습] 오픈AI의 API 키 발급받기
__[Do it! 실습] 오픈AI의 API 결제 수단 설정하기
__크레딧 사용 한도 설정하기
__[Do it! 실습] 올라마 설치하기
_02-3 첫 번째 스프링 AI 프로젝트 시작하기
__스프링 AI의 핵심 구성 요소
__AI 모델과 통신하기 위한 표준 규격 - ChatModel
__[Do it! 실습] 첫 번째 스프링 AI 프로젝트 생성하기
__[Do it! 실습] 윈도우 환경 변수 설정하기
__[Do it! 실습] 인텔리제이 환경 변수 설정하기
__[Do it! 실습] ChatModel로 LLM과 직접 통신하기
__ChatModel이 생성되는 6단계
02장 되새김 문제
03장 ChatClient 이해하기
_03-1 ChatClient로 AI 모델과 대화하기
__ChatModel과 ChatClient의 차이 이해하기
__ChatClient를 생성하는 방법
__AiConfig에서 ChatClient 빈 등록하기
__설정 클래스에서 등록하기
__[Do it! 실습] ChatModel에서 ChatClient로 리팩터링하기
_03-2 ChatClient로 다중 AI 모델 연동하기
__[Do it! 실습] 올라마의 AI 모델을 사용하도록 설정하기
__수동 구성 방식으로 ChatClient를 생성하는 방법
__[Do it! 실습] 다중 AI 모델과 연동하는 ChatClient 구성하기
__@Primary로 기본 ChatClient 지정하기
_03-3 Prompt 객체 이해하기
__AI 모델에게 보낼 요청을 담는 상자 - Prompt
__대화의 맥락과 역할 ? Message 인터페이스
__대화의 규칙과 제약 조건 ? ChatOptions 인터페이스
_03-4 ChatClient의 유창한 API 이해하기
_메서드 체이닝과 유창한 API
__[Do it! 실습] 단일 ChatClient 프로젝트 생성하기
__[Do it! 실습] Builder 패턴으로 프롬프트 구성하기
__[Do it! 실습] Prompt 객체를 직접 조립해서 사용하기
_03-5 ChatClient의 응답 다루기
__ChatClient의 응답을 추출하는 3가지 방법
__[Do it! 실습] ChatResponse 객체에서 상세 내용 추출하기
__[Do it! 실습] AI 모델의 응답에서 메타데이터 추출하기
__[Do it! 실습] AI 응답을 Entity 객체로 받기
__[Do it! 실습] AI 응답을 객체 리스트로 받기
_03-6 ChatOptions로 응답 옵션 설정하기
__ChatOptions의 주요 옵션 살펴보기
__스프링 AI에서 옵션을 설정하는 3가지 방법
__옵션을 설정하는 방법이 다양한 이유
__[Do it! 실습] ChatOptions 설정 우선순위 확인하기
03장 되새김 문제
둘째마당 템플릿과 스트리밍 응답 제어하기
04장 동적 프롬프트와 템플릿 다루기
_04-1 동적 프롬프트 이해하기
__프롬프트 엔지니어링과 맥락의 중요성
__AI에게 보낼 메시지를 만드는 틀 ? PromptTemplate
__PromptTemplate을 사용하는 2가지 방법
__[Do it! 실습] ChatClient의 유창한 API로 동적 프롬프트 만들기
_04-2 명시적으로 동적 프롬프트 만들기
__PromptTemplate을 명시적으로 생성하는 방법
__[Do it! 실습] PromptTemplate을 단계별로 구현하기
__[Do it! 실습] PromptTemplate을 역할 기반으로 구현하기
__[Do it! 실습] 외부 파일로 PromptTemplate 관리하기
04장 되새김 문제
05장 Advisor와 스트리밍 응답 다루기
_05-1 스프링 AI의 Advisor 이해하기
__Advisor란 무엇일까?
__스프링 AI의 내장 Advisor 종류
__스프링 AI에서 Advisor를 설정하는 2가지 방법
__[Do it! 실습] SimpleLoggerAdvisor로 로그 기록하기
__[Do it! 실습] SafeGuardAdvisor로 프롬프트 검사하기
_05-2 사용자 정의 Advisor 구현하기
__[Do it! 실습] TokenPrintAdvisor 클래스 작성하기
__Advisor가 실행되는 순서
_05-3 스프링 AI의 스트리밍 응답 구현하기
__call() 메서드의 한계
__스트리밍 방식의 원리 이해하기
__스트리밍 응답을 구현하는 stream() 메서드
__[Do it! 실습] 실시간 답변을 제공하는 스트리밍 서비스 구축하기
05장 되새김 문제
셋째마당 기억력과 전문 지식을 갖춘 AI 챗봇 만들기
06장 대화 문맥 관리하기
_06-1 ChatMemory로 기억력 구현하기
__대화 내용을 기억하지 못하는 LLM
__스프링 AI의 기억력을 만드는 2가지 인터페이스
__대화에 맥락을 삽입하는 Advisor
__메모리 기능을 위한 객체의 주입 관계
__스프링 AI 메모리 기능의 전체 흐름
__[Do it! 실습] 대화를 기억하는 AI 챗봇 구현하기
_06-2 다중 사용자 환경에서 메모리 기능 구현하기
__사용자가 두 명 이상이라면 어떻게 될까?
__[Do it! 실습] 다중 사용자 세션 분리하기
__[Do it! 실습] 인메모리 저장소에 저장된 데이터 확인하기
_06-3 대화 내용 영구 저장하기
__인메모리 저장소의 한계를 극복하는 JDBC
__[Do it! 실습] 대화를 저장할 데이터베이스 준비하기
__[Do it! 실습] 데이터베이스 기반 대화 저장소 구축하기
__메모리 전략 커스터마이징하기
06장 되새김 문제
07장 스프링 AI로 RAG 시작하기
_07-1 필수 개념과 함께 RAG 이해하기
__LLM의 한계를 해결하는 RAG
__RAG가 만드는 4가지 변화
__RAG의 3단계 핵심 프로세스
__LLM이 데이터를 이해하는 방법 ? 임베딩과 벡터 공간
__유사성 검색
__코사인 유사도
__벡터 데이터베이스
_07-2 RAG를 위한 지식 베이스 구축하기
__Document
__VectorStore
__스프링 AI에서 RAG의 동작 흐름
__스프링 AI의 벡터 데이터베이스 솔루션
__[Do it! 실습] MariaDB 벡터 데이터베이스 준비하기
__[Do it! 실습] 스프링 AI로 MariaDB 벡터 테이블 자동 생성하기
_07-3 스프링 AI로 ETL 파이프라인 구현하기
__스프링 AI에서 ETL 파이프라인 동작 흐름 이해하기
__TokenTextSplitter의 동작 원리
__[Do it! 실습] 호텔 매뉴얼 데이터를 벡터 스토어에 적재하기
_07-4 첫 번째 RAG 프로젝트 완성하기
__[Do it! 실습] RAG로 AI 호텔 컨시어지 만들기
_07-5 Advisor를 통한 RAG 자동화하기
__RAG 파이프라인을 자동화하는 Advisor
__QuestionAnswerAdvisor의 프롬프트 템플릿
__[Do it! 실습] QuestionAnswerAdvisor로 RAG 자동화하기
_07-6 고급 RAG 파이프라인 구현하기
__고급 RAG 파이프라인의 4단계 프로세스
__[Do it! 실습] 4단계 모듈식 RAG 파이프라인 구축하기
__[Do it! 실습] PDF 데이터를 벡터 데이터베이스로 변환하기
07장 되새김 문제
넷째마당 행동하는 AI 에이전트 만들기
08장 도구 호출로 외부 세계와 연결하기
_08-1 도구 호출 이해하기
__도구 호출이란 무엇일까?
__도구 호출의 6단계 작동 원리
_08-2 선언적 방식으로 도구 구현하기
__스프링 AI에서 도구를 구현하는 2가지 방법
__[Do it! 실습] @Tool로 날짜 조회 도구 만들기
__[Do it! 실습] @ToolParam을 활용해 액션 수행 도구 만들기
_08-3 날씨 조회 AI 에이전트 완성하기
__AI 에이전트란 무엇일까?
__[Do it! 실습] 날씨 정보 조회를 위한 API 키 발급받기
__[Do it! 실습] 외부 API로 날씨를 조회하는 도구 만들기
__강력한 AI 에이전트의 3가지 조건
08장 되새김 문제
09장 MCP로 도구 확장하기
_09-1 MCP 이해하기
__MCP란 무엇일까?
__MCP의 클라이언트-서버 아키텍처
__MCP의 주요 기능 구성
__MCP의 2가지 통신 방식
__MCP와 JSON-RPC 2.0
__MCP 통신의 라이프사이클
__스프링 AI에서 MCP 사용하기
__MCP 서버 탐색하기
_09-2 첫 번째 MCP 서버 연결하기
_파일 관리 AI 에이전트 살펴보기
__[Do it! 실습] 파일 관리 AI 에이전트 구축하기
__[Do it! 실습] 파일 관리 AI 에이전트 테스트하기
_09-3 다중 MCP 서버 연결하기
__회의록 자동화 AI 에이전트 살펴보기
__[Do it! 실습] 노션 API 사용을 위한 준비하기
__[Do it! 실습] 회의록 자동화 AI 에이전트 구축하기
09장 되새김 문제
10장 커스텀 MCP 서버 구축하기
_10-1 MCP의 2가지 통신 방식 이해하기
__로컬 MCP 서버와 통신하기 ? STDIO
__원격 MCP 서버와 통신하기 ? SSE와 Streamable HTTP
_10-2 도서 DB 검색 MCP 서버 만들기
__[Do it! 실습] STDIO 방식으로 통신하는 MCP 서버 구축하기
__[Do it! 실습] MCP 인스펙터로 로컬 MCP 서버 테스트하기
__[Do it! 실습] 클로드 데스크톱에서 로컬 MCP 서버 테스트하기
_10-3 도서 DB 검색 MCP 클라이언트 만들기
__[Do it! 실습] MCP 클라이언트 구현하기
__[Do it! 실습] 직접 만든 MCP 클라이언트와 MCP 서버 연동하기
_10-4 원격 MCP 서버 만들기
__[Do it! 실습] 원격 MCP 서버 구축하기
__[Do it! 실습] 인스펙터로 Streamable HTTP 방식 MCP 서버 테스트하기
__[Do it! 실습] 원격 MCP 클라이언트 구축하기
__[Do it! 실습] MCP Client와 원격 MCP 서버 연동하기
10장 되새김 문제
다섯째마당 멀티모달 기능 구현하기
11장 이미지 모델 활용하기
_11-1 이미지 생성 기능 구현하기
__ImageModel
__ImagePrompt
__ImagePrompt를 생성하는 방법
__ImageResponse와 ImageGeneration
__[Do it! 실습] 이미지를 생성하는 AI 애플리케이션 만들기
__이미지 생성 요청 시 처리 흐름 살펴보기
_11-2 AI 이미지 안전하게 관리하기
__이미지 URL을 왜 그대로 사용할 수 없을까?
__[Do it! 실습] 로컬 PC에 이미지를 저장하기
_11-3 AI 비전 기능 구현하기
__비전 분석과 멀티모달 모델
__[Do it! 실습] 바딘을 활용해 AI 비전 분석 서비스 구축하기
11장 되새김 문제
12장 음성 모델 활용하기
_12-1 음성을 텍스트로 바꾸는 STT 구현하기
__스프링 AI에서 오디오 다루기
__TranscriptionModel
__AudioTranscriptionPrompt
__AudioTranscriptionOptions
__오픈AI의 STT 모델과 특징
__[Do it! 실습] 음성 인식 서비스 및 컨트롤러 구현하기
__음성 인식 기능의 한계 극복하기
_12-2 텍스트를 음성으로 바꾸는 TTS 구현하기
__TextToSpeechModel
__TextToSpeechPrompt
__TextToSpeechOptions
__[Do it! 실습] AI의 목소리를 만드는 TTS 서비스 구현하기
_12-3 실시간 스트리밍 TTS 구현하기
__stream() 메서드 살펴보기
__[Do it! 실습] WebFlux 스트리밍 엔드포인트 구현하기
12장 되새김 문제
부록 A 실습을 위한 환경 구성하기
부록 B 스프링 AI로 구현하는 효과적인 에이전트 패턴
최종 프로젝트 코딩 튜터 AI 에이전트 만들기
찾아보기
도서 DB 제공 - 알라딘 인터넷서점 (www.aladin.co.kr)