
데이터와 LLM을 연결해서 진짜 쓸모 있는 AI 애플리케이션을 만들자
생성형 AI와 대형 언어 모델(LLM)은 막대한 가능성을 지닌 강력한 도구지만, 잘못된 정보 생성이나 짧은 문맥 처리, 최신 데이터 반영의 어려움 같은 약점도 분명히 존재한다. 이 책은 그 한계를 극복할 수 있는 검색 증강 생성(RAG)과 LlamaIndex 활용법을 구체적으로 안내하며, 파이썬과 Streamlit으로 직접 프로젝트를 만들면서 데이터 수집, 색인, 검색, 쿼리, 프롬프트 엔지니어링, 배포까지 AI 애플리케이션 개발의 전 과정을 실습할 수 있도록 돕는다. 기본 개념에서 출발해 챗봇과 에이전트 구축, 사용자 정의와 실제 배포 전략까지 한 권에 담았다. 이 책을 통해 단순한 실습을 넘어 데이터를 다루고 최적화하는 전 과정을 직접 경험하며, LLM의 한계를 넘어서는 정확하고 지능적인 AI 애플리케이션을 직접 구축할 수 있는 역량을 키우자.
도서구매 사이트(가나다순)
| [교보문고] [도서11번가] [알라딘] [예스이십사] [쿠팡] |
출판사 제이펍
저작권사 Packt Publishing
원서명 Building Data-Driven Applications with LlamaIndex (9781835089507)
도서명 라마인덱스로 배우는 데이터 기반 AI 애플리케이션
부제 파이썬과 Streamlit으로 만드는 생성형 AI와 RAG 실전 LLM 개발
지은이 안드레이 게오르기우
옮긴이 동동구
감수자 (없음)
시리즈 (없음)
출판일 2025. 10. 30
페이지 392쪽
판 형 46배판변형(188*245*19.1)
제 본 무선(soft cover)
정 가 32,000원
ISBN 979-11-94587-84-2 (93000)
키워드 인공지능, 대형 언어 모델, LlamaIndex, 검색 증강 생성, 프롬프트 엔지니어링, 데이터 쿼리, 에이전트, Agent, 메타데이터, 파인 튜닝
분 야 인공지능 / 생성형 AI
관련 사이트
■ 아마존 도서 페이지
■ 저작권사 도서 페이지
관련 시리즈
■ (없음)
관련 포스트
■ 2025.10.16 - [출간 전 책 소식] - 내 데이터를 이해하는 나만의 AI를 만든다
관련 도서
관련 파일 다운로드
■ https://github.com/PacktPublishing/Building-Data-Driven-Applications-with-LlamaIndex
강의 보조 자료(교재로 채택하신 분들은 https://jpub.tistory.com/notice/1076을 통해 다음 자료를 요청하실 수 있습니다.)
■ 본문의 그림과 표
미리보기(차례, 옮긴이 머리말, 베타리더 후기, 시작하며, 이 책에 대하여, 본문 일부)
정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)
도서구매 사이트(가나다순)
| [교보문고] [도서11번가] [알라딘] [예스이십사] [쿠팡] |
도서 소개
생성형 AI, 이제 ‘구경’이 아니라 ‘직접 만들’ 때다
ChatGPT로 대표되는 생성형 AI 시대, 아이디어를 실제 서비스로 구현해보고 싶지만 어디서부터 시작해야 할지 막막한 개발자를 위해 이 책이 탄생했다. 단순히 API를 호출해 모델을 쓰는 것으로 만족할 수 없다. 나만의 데이터로 학습시키고, 실시간으로 대화하며, 바로 서비스를 배포할 수 있어야 한다. 이 책은 바로 그 과정을 단계별로 안내한다. 복잡한 개념을 피하고, 실습으로 배우며, ‘나도 만들 수 있겠다’는 확신을 심어주는 실전형 가이드다.
이 책은 파이썬과 Streamlit을 기반으로 생성형 AI와 RAG(검색 증강 생성)의 원리를 실습 중심으로 다룬다. 특히 LlamaIndex를 중심으로 데이터 수집, 파싱, 인덱싱, 검색, 후처리까지 이어지는 RAG 전체 파이프라인을 직접 구현해본다. 단순한 기능 설명에 그치지 않고, 각 단계가 왜 필요한지, 실제 프로젝트에서는 어떻게 최적화할 수 있는지 구체적인 코드를 통해 보여준다.
또한 실무에서 바로 응용할 수 있는 챗봇과 에이전트 구현, 맞춤형 프롬프트 엔지니어링, 비용 관리, 배포 전략까지 폭넓게 다룬다. VectorStore, KnowledgeGraph, QueryEngine 등 핵심 구성 요소를 이해하고 나면, 여러분의 아이디어를 데이터 기반 AI 애플리케이션으로 빠르게 전환할 수 있을 것이다.
이 책을 덮을 때쯤이면 여러분은 단순한 사용자에서 ‘AI를 직접 구현하고 개선할 수 있는 개발자’로 성장해 있을 것이다. 복잡한 이론보다 코드를 통해 배우고 싶은 분, RAG와 LlamaIndex로 실전형 LLM 프로젝트를 완성하고 싶은 분에게 이 책은 가장 현실적인 출발점이 될 것이다.
주요 내용
- LlamaIndex 생태계와 핵심 구성 요소 이해하기
- 다양한 소스(웹, DB, 파일 등)에서 데이터 수집·파싱·인덱싱하기
- VectorStore, KnowledgeGraph 등 맞춤형 인덱스 설계 및 활용
- 효율적인 쿼리, 검색, 후처리, 응답 합성 기법 학습
- 챗봇과 에이전트 구현으로 대화형 애플리케이션 개발
- 프롬프트 엔지니어링의 모범 사례와 활용 전략
- 비용 예측, 개인정보 보호, 윤리적 고려 사항 다루기
- Streamlit을 활용한 프로젝트 배포 및 확장
지은이 소개
안드레이 게오르기우(Andrei Gheorghiu)
20년 이상의 경력을 가진 IT 전문가이자 ITAcademy의 숙련된 트레이너. 교육, 컨설팅, IT 감사 분야에서 폭넓은 경험을 쌓았다. ITIL 마스터, CISA, ISO 27001 선임 심사원, CISSP 등 다양한 국제 자격을 보유하고 있으며, 지금까지 수천 명의 수강생에게 IT 서비스 관리, 정보 보안, IT 거버넌스와 감사 분야를 교육했다. 또한 ERP와 CRM 시스템 구축, 다양한 조직의 보안 평가 및 감사 수행 등 다양한 프로젝트를 수행하며 컨설턴트로서의 전문성을 입증했다. 혁신에 대한 열정을 바탕으로 방대한 지식을 나누고, 최신 기술 발전에 발맞추어 현실적인 문제 해결 방안을 제시하는 데 힘쓰고 있다. 미래지향적인 교육자로서, 생성형 AI 시대에도 사람들이 경쟁력을 유지할 수 있도록 역량 강화와 재교육을 통한 생산성 향상을 위해서도 노력하고 있다.
동동구
현재 전략 기획 업무를 수행하고 있다. 이전에는 B2C 및 B2B 웹 애플리케이션, Brew/WIPI/SKVM 등의 피처폰 애플리케이션, iOS/안드로이드/윈도우폰/타이젠 애플리케이션 등의 설계 및 개발, 엔지니어 관리 업무를 수행했다. 최근에는 국내 개발자들을 위해 IT 서적을 번역하고 있으며, 옮긴 책으로는 《파이썬과 JAX로 추천 시스템 구축하기》, 《파이썬 시계열 예측분석》(이상 제이펍), 《MLOps 도입 가이드》, 《파이썬 비동기 라이브러리 Asyncio》(이상 한빛미디어) 등이 있다.
차례
옮긴이 머리말 xii
베타리더 후기 xiv
시작하며 xvi
이 책에 대하여 xvii
PART I 생성형 AI와 LlamaIndex 소개
CHAPTER 1 대형 언어 모델 이해하기 3
1.1 생성형 AI와 LLM 소개하기 4
__1.1.1 생성형 AI란 무엇인가? 4 / 1.1.2 LLM이란 무엇인가? 4
1.2 현대 기술에서 LLM의 역할 이해하기 6
1.3 LLM이 직면한 도전 과제 탐구하기 8
1.4 RAG로 LLM 증강하기 12
1.5 요약 14
CHAPTER 02 LlamaIndex: 숨겨진 보석 — LlamaIndex 생태계 소개 15
2.1 기술적 요구사항 15
2.2 언어 모델 최적화 — 파인 튜닝, RAG, LlamaIndex의 상호작용 16
__2.2.1 RAG가 유일한 해결책인가? 16 / 2.2.2 LlamaIndex의 기능 18
2.3 점진적으로 복잡성을 공개하는 방식의 장점 발견 20
__2.3.1 고려해야 할 중요한 측면 21
2.4 LlamaIndex 실습 프로젝트 — PITS 소개 21
__2.4.1 작동 방식 21
2.5 코딩 환경 준비하기 23
__2.5.1 파이썬 설치하기 24 / 2.5.2 Git 설치하기 24 / 2.5.3 LlamaIndex 설치하기 25 / 2.5.4 OpenAI API 키 등록하기 25 / 2.5.5 Streamlit 탐구하기 — 빠른 구축과 배포를 위한 완벽한 도구 28 / 2.5.6 Streamlit 설치하기 29 / 2.5.7 마무리하기 29 / 2.5.8 최종 확인 30
2.6 LlamaIndex 코드 저장소 구조 파악하기 31
2.7 요약 32
PART II 첫 LlamaIndex 프로젝트 시작하기
CHAPTER 03 LlamaIndex로 여정 시작하기 37
3.1 기술적 요구사항 37
3.2 LlamaIndex의 필수 구성 요소 파악하기 — 문서, 노드, 인덱스 38
__3.2.1 문서 38 / 3.2.2 노드 41 / 3.2.3 Node 객체를 수동으로 생성하기 43 / 3.2.4 스플리터를 사용하여 Document에서 Node 자동 추출하기 43 / 3.2.5 Node는 혼자 있는 것을 좋아하지 않습니다 — 관계를 갈망합니다 45 / 3.2.6 왜 관계가 중요한가요? 46 / 3.2.7 인덱스 47 / 3.2.8 거의 다 왔나요? 49 / 3.2.9 이것은 내부적으로 어떻게 작동하나요? 50 / 3.2.10 핵심 개념의 빠른 정리 52
3.3 첫 번째 대화형, 증강 LLM 애플리케이션 구축하기 52
__3.3.1 LlamaIndex의 로깅 기능을 사용하여 로직을 이해하고 애플리케이션 디버깅하기 54 / 3.3.2 LlamaIndex에서 사용하는 LLM 사용자 정의하기 55 / 3.3.3 1-2-3만큼 쉽습니다 55 / 3.3.4 온도 매개변수 56 / 3.3.5 사용자 정의를 위한 Settings 사용 방법 이해하기 58
3.4 실습 — PITS 프로젝트 시작하기 59
__3.4.1 소스코드 살펴보기 61
3.5 요약 64
CHAPTER 04 RAG 워크플로에 데이터 가져오기 65
4.1 기술적 요구사항 65
4.2 LlamaHub를 통한 데이터 수집 66
4.3 LlamaHub 개요 67
4.4 LlamaHub 데이터 로더를 사용하여 콘텐츠 수집하기 68
__4.4.1 웹 페이지에서 데이터 수집하기 68 / 4.4.2 데이터베이스에서 데이터 수집하기 70 / 4.4.3 다양한 파일 형식의 소스에서 대량 데이터 수집하기 71
4.5 문서를 노드로 파싱하기 76
__4.5.1 간단한 텍스트 분할기 이해하기 76 / 4.5.2 더 고급 노드 파서 사용하기 78 / 4.5.3 관계형 파서 사용하기 82 / 4.5.4 노드 파서와 텍스트 분할기가 혼란스러운가요? 83 / 4.5.5 chunk_size와 chunk_overlap 이해하기 83 / 4.5.6 include_prev_next_rel을 사용한 관계 포함 85 / 4.5.7 이러한 노드 생성 모델을 사용하는 실용적인 방법 86
4.6 문맥을 개선하기 위해 메타데이터 활용하기 88
__4.6.1 SummaryExtractor 90 / 4.6.2 QuestionsAnsweredExtractor 91 / 4.6.3 TitleExtractor 91 / 4.6.4 EntityExtractor 92 / 4.6.5 KeywordExtractor 93 / 4.6.6 PydanticProgramExtractor 94 / 4.6.7 MarvinMetadataExtractor 94 / 4.6.8 맞춤형 추출기 정의 95 / 4.6.9 메타데이터가 많으면 항상 좋은가요? 95
4.7 메타데이터 추출기를 사용할 때 발생할 수 있는 비용 추정 96
__4.7.1 비용을 최소화하기 위한 간단한 모범 사례 97 / 4.7.2 실제 추출기를 실행하기 전에 최대 비용 추정해보기 97
4.8 메타데이터 추출기를 통한 프라이버시 보호, 그리고 그 이상 99
__4.8.1 개인 데이터 및 기타 민감한 정보 삭제 101
4.9 데이터 수집 파이프라인을 사용하여 효율성 높이기 102
4.10 텍스트와 표 데이터가 혼합된 문서 처리하기 106
4.11 실습 — PITS에 학습 자료 업로드하기 107
4.12 요약 109
CHAPTER 05 LlamaIndex로 인덱싱하기 111
5.1 기술적 요구사항 111
5.2 데이터 인덱싱 — 전체적 관점 112
__5.2.1 모든 인덱스 유형의 공통적 특징 113
5.3 VectorStoreIndex 이해하기 114
__5.3.1 VectorStoreIndex의 간단한 사용 예시 114 / 5.3.2 임베딩 이해하기 116 / 5.3.3 유사도 검색 이해하기 118 / 5.3.4 LlamaIndex는 이러한 임베딩을 어떻게 생성하나요? 122 / 5.3.5 어떤 임베딩 모델을 사용해야 할까요? 124
5.4 인덱스 지속성 및 재사용 125
__5.4.1 StorageContext 이해하기 127 / 5.4.2 벡터 저장소와 벡터 데이터베이스의 차이 129
5.5 LlamaIndex의 다른 인덱스 유형 131
__5.5.1 SummaryIndex 131 / 5.5.2 DocumentSummaryIndex 133 / 5.5.3 KeywordTableIndex 135 / 5.5.4 TreeIndex 137 / 5.5.5 KnowledgeGraphIndex 142
5.6 ComposableGraph를 사용하여 인덱스 위에 인덱스 구축하기 145
__5.6.1 ComposableGraph 사용 방법 146 / 5.6.2 이 개념에 대한 더 자세한 설명 147
5.7 인덱스 구축 및 쿼리의 잠재적 비용 추정 148
5.8 실습 — PITS 학습 자료 인덱싱 152
5.9 요약 153
PART III 인덱싱된 데이터의 검색 및 활용 155
CHAPTER 06 데이터 쿼리하기, 1단계 — 맥락 검색 157
6.1 기술적 요구사항 157
6.2 쿼리 메커니즘 개요 158
6.3 기본 검색기의 이해 158
__6.3.1 VectorStoreIndex 검색기 160 / 6.3.2 SummaryIndex 검색기 162 / 6.3.3 DocumentSummaryIndex 검색기 164 / 6.3.4 TreeIndex 검색기 167 / 6.3.5 KeywordTableIndex 검색기 170 / 6.3.6 KnowledgeGraphIndex 검색기 172 / 6.3.7 모든 검색기가 공유하는 공통 특성 176 / 6.3.8 검색 메커니즘의 효율적 사용 — 비동기 작업 177
6.4 고급 검색 메커니즘 구축 178
__6.4.1 단순 검색 방법 178 / 6.4.2 메타데이터 필터 구현 179 / 6.4.3 더 고급 의사결정 논리를 위한 셀렉터 사용 182 / 6.4.4 도구 이해하기 184 / 6.4.5 질의 변환 및 재작성 186 / 6.4.6 더 구체적인 하위 질의 생성하기 188
6.5 밀집 검색과 희소 검색의 개념 이해 191
__6.5.1 밀집 검색 191 / 6.5.2 희소 검색 192 / 6.5.3 LlamaIndex에서 희소 검색 구현하기 195 / 6.5.4 다른 고급 검색 방법 탐색 198
6.6 요약 199
CHAPTER 07 데이터 쿼리하기, 2단계 — 후처리 및 응답 합성 200
7.1 기술 요구사항 200
7.2 후처리기를 사용한 노드의 재정렬, 변환, 필터링 201
__7.2.1 후처리기가 노드를 필터링, 변환, 재정렬하는 방법 탐구 202 / 7.2.2 SimilarityPostprocessor 204 / 7.2.3 KeywordNodePostprocessor 205 / 7.2.4 PrevNextNodePostprocessor 208 / 7.2.5 LongContextReorder 209 / 7.2.6 PIINodePostprocessor와 NERPIINodePostprocessor 209 / 7.2.7 MetadataReplacementPostprocessor 210 / 7.2.8 SentenceEmbeddingOptimizer 212 / 7.2.9 시간 기반 후처리기 213 / 7.2.10 후처리기 재정렬하기 215 / 7.2.11 노드 후처리기에 대한 최종 생각 220
7.3 응답 합성기 이해하기 220
7.4 출력 파싱 기법 구현하기 224
__7.4.1 출력 파서를 사용하여 구조화된 출력 추출하기 225 / 7.4.2 Pydantic 프로그램을 사용하여 구조화된 출력 추출하기 229
7.5 쿼리 엔진 구축 및 사용하기 230
__7.5.1 쿼리 엔진 구축의 다양한 방법 탐색 230 / 7.5.2 QueryEngine 인터페이스의 고급 활용 231
7.6 실습 — PITS에서 퀴즈 만들기 239
7.7 요약 242
CHAPTER 08 LlamaIndex로 챗봇과 에이전트 구축하기 243
8.1 기술 요구사항 243
8.2 챗봇과 에이전트 이해하기 244
__8.2.1 ChatEngine 탐색하기 246 / 8.2.2 다양한 채팅 모드 이해하기 248
8.3 앱에 에이전트 전략 구현하기 258
__8.3.1 에이전트를 위한 도구와 ToolSpec 클래스 구축하기 259 / 8.3.2 추론 루프 이해하기 262 / 8.3.3 OpenAIAgent 264 / 8.3.4 ReActAgent 269 / 8.3.5 에이전트와 어떻게 상호작용하나요? 271 / 8.3.6 유틸리티 도구를 사용하여 에이전트 향상하기 271 / 8.3.7 더 고급 시나리오를 위한 LLMCompiler 에이전트 사용하기 276 / 8.3.8 저수준 에이전트 프로토콜 API 사용하기 279
8.4 실습 — PITS를 위한 대화 추적 구현하기 282
8.5 요약 288
요약 133
PART IV 사용자 정의, 프롬프트 엔지니어링, 그리고 결론
CHAPTER 09 LlamaIndex 프로젝트의 사용자 정의 및 배포 291
9.1 기술 요구사항 291
9.2 RAG 구성 요소 사용자 정의하기 292
__9.2.1 LLaMA와 LLaMA 2가 오픈소스 환경에 미친 영향 292 / 9.2.2 LM Studio를 사용하여 로컬 LLM 실행하기 293 / 9.2.3 Neutrino나 OpenRouter와 같은 서비스를 사용하여 LLM 간 라우팅하기 300 / 9.2.4 임베딩 모델을 사용자 정의하는 것은 어떨까요? 303 / 9.2.5 Llama Packs의 플러그 앤 플레이 편리성 활용하기 303 / 9.2.6 Llama CLI 사용하기 306
9.3 고급 추적 및 평가 기술 사용하기 308
__9.3.1 Phoenix를 사용하여 RAG 워크플로 추적하기 309 / 9.3.2 우리의 RAG 시스템 평가하기 312
9.4 Streamlit을 활용한 배포 소개 319
9.5 실습 — 단계별 배포 가이드 321
__9.5.1 PITS 프로젝트를 Streamlit Community Cloud에 배포하기 323
9.6 요약 327
CHAPTER 10 프롬프트 엔지니어링의 가이드라인 및 모범 사례 328
10.1 기술 요구사항 328
10.2 프롬프트가 비밀 무기인 이유 329
10.3 LlamaIndex가 프롬프트를 사용하는 방법 이해하기 332
10.4 기본 프롬프트 커스터마이징 335
__10.4.1 LlamaIndex에서 고급 프롬프트 기법 사용하기 339
10.5 프롬프트 엔지니어링의 황금률 340
__10.5.1 표현의 정확성과 명확성 340 / 10.5.2 지시성 340 / 10.5.3 콘텍스트 품질 340 / 10.5.4 콘텍스트 양 341 / 10.5.5 필요한 출력 형식 342 / 10.5.6 추론 비용 342 / 10.5.7 전체 시스템 지연 시간 343 / 10.5.8 작업에 적합한 LLM 선택 343 / 10.5.9 효과적인 프롬프트를 만드는 데 사용하는 일반적인 방법 346
10.6 요약 349
CHAPTER 11 결론과 추가 리소스 351
11.1 다른 프로젝트와 추가 학습 351
__11.1.1 LlamaIndex 예제 모음 352 / 11.1.2 앞으로 나아가기 — Replit 바운티 355 / 11.1.3 다수의 힘 — LlamaIndex 커뮤니티 356
11.2 주요 시사점과 최종 격려의 말 357
__11.2.1 생성형 AI라는 더 큰 맥락에서 RAG의 미래 359 / 11.2.2 고려할 만한 철학적 생각 362
11.3 요약 363
찾아보기 365
제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)
| 블로그 유튜브 인스타그램 트위터 페이스북 |
'도서 소개' 카테고리의 다른 글
| 컴퓨터 아키텍처 (2) | 2025.11.03 |
|---|---|
| 데이터베이스 설계, 이렇게 하면 된다(제2판) (0) | 2025.11.03 |
| 실무에 바로 쓰는 일잘러의 챗GPT 프롬프트 74가지 (0) | 2025.10.23 |
| 리드 개발자로 가는 길 (0) | 2025.10.21 |
| 쏙쏙 들어오는 자료구조 (1) | 2025.09.23 |