한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
1. 이 책을 선택한 동기
일전에 GPT API를 활용한 인공지능 앱 개발을 읽어봤지만, OpenAI API
에만 의존해야 한다는 제약과 실제 구현하기에는 깊이 있는 지식이 부족하다는 걸 느꼈어요.
그러던 중 랭체인이라는 프레임워크를 알게 되었습니다. LLM을 단순히 API로 호출하는 차원을 넘어서, 복잡한 워크플로우를 구성하고 다양한 LLM 모델을 조합해서 사용할 수 있다는 점이 매력적이었어요.
더욱이 실제 운영 환경에서 돌아가는 LLM 애플리케이션을 만들려면 단순한 질의응답 기능을 넘어서, RAG
(검색 증강 생성)나 에이전트
같은 고급 개념들을 이해해야 한다는 걸 깨달았어요. 이론만 아는 게 아니라 실제로 구현할 수 있는 실력을 기르고 싶어서 러닝 랭체인을 읽기 시작했습니다.
2. 어떤 책인지
러닝 랭체인은 단순한 랭체인 매뉴얼이 아니었어요. LLM을 활용한 실용적인 애플리케이션 개발의 전체 여정을 다루는 종합 가이드였습니다. 책은 크게 세 부분으로 나뉩니다.
첫 번째는 LLM과 랭체인의 기초 개념 설명입니다. AI나 머신러닝 배경지식이 없어도 이해할 수 있도록 트랜스포머 아키텍처부터 프롬프트 엔지니어링까지 친절하게 설명해줘요.
두 번째는 랭체인의 핵심 기능들을 하나씩 파헤치는 부분입니다. 체인, 메모리, 에이전트, RAG 시스템 구축 방법을 실습 위주로 다룹니다.
마지막은 랭그래프를 활용한 고급 워크플로우 설계인데, 이 부분이 특히 인상적이었어요.
가장 큰 특징은 Python
과 JavaScript
두 언어로 모든 예제를 제공한다는 점입니다. JavaScript가 주력인 저에게는 특히 좋았던 점입니다. 또한 단순한 코드 나열이 아니라, 복잡한 설계적인 부분은 시각적 다이어그램으로 설명해서 복잡한 AI 개념들을 직관적으로 이해할 수 있게 도와줍니다.
3. 특히 인상적이었던 점
가장 인상깊었던 건 랭체인의 `체인` 개념을 설명하는 방식이었어요. 처음에는 단순히 여러 LLM 호출을 연결하는 정도로만 이해했는데, 책을 읽으면서 이게 얼마나 강력한 패러다임인지 깨달았습니다.
예를 들어, 사용자 질문을 받아서 → 관련 문서를 검색하고 → 검색 결과를 요약한 뒤 → 최종 답변을 생성하는 과정을 하나의 체인으로 구성할 수 있어요. 이 과정에서 각 단계마다 다른 프롬프트와 모델을 사용할 수 있고, 중간 결과를 메모리에 저장해서 다음 단계에 활용할 수도 있습니다.
이걸 보면서 React의 컴포넌트 합성
개념과 매우 유사하다는 걸 느꼈어요. 작은 기능들을 조합해서 복잡한 애플리케이션을 만드는 방식에서 닮은 점이 느껴졌습니다. 특히 LCEL
(LangChain Expression Language) 문법을 보면서는 함수형 프로그래밍의 파이프라인 연산자와 비슷하다는 생각이 들었습니다.
또 하나 인상적이었던 건 RAG 시스템 구축 과정을 단계별로 상세히 설명한 부분이에요. 벡터 저장소
, 임베딩
, 문서 분할
, 유사도 검색
같은 개념들이 처음에는 추상적으로 느껴졌는데, 실제 구현 예제를 따라하면서 '아, 이렇게 동작하는구나!'라는 순간이 여러 번 있었어요.
4. 덕분에 무엇을 배웠는가
첫째, 프롬프트 엔지니어링의 실제 적용법이에요. 단순히 "좋은 프롬프트를 작성하라"는 추상적인 조언이 아니라, Few-shot 프롬프트, Chain-of-Thought, 역할 기반 프롬프트 등 구체적인 기법들을 실습할 수 있었습니다.
둘째, RAG 시스템 구축을 통해 벡터 데이터베이스의 작동 원리를 이해했어요. 문서를 어떻게 임베딩으로 변환하고, 유사도 검색을 통해 관련 정보를 찾아내는지, 그리고 이를 LLM의 컨텍스트로 활용하는 전체 파이프라인을 손으로 구현해볼 수 있었습니다.
셋째, 랭그래프를 통한 상태 기반 대화 시스템 구축법을 익혔어요. 단순한 일회성 질답이 아니라, 이전 대화 내용을 기억하고 복잡한 워크플로우를 처리할 수 있는 에이전트를 만드는 방법을 배웠습니다.
마지막으로, LLM 애플리케이션의 성능 최적화와 비용 관리에 대한 실용적인 지식도 얻었어요. 토큰 사용량 최적화
, 캐싱 전략
, 스트리밍 응답
등 실제 운영 환경에서 고려해야 할 요소들을 알 수 있었습니다.
5. 좋았던 점
5.1 Python과 JavaScript 예제 동시 제공의 장점
모든 예제를 `Python`과 `JavaScript` 두 버전으로 제공한다는 점이에요. JavaScript가 주력 언어인 저에게는 정말 큰 도움이 되었습니다. 기본적으로는 JS 코드를 따라했지만, Python 코드도 함께 보면서 두 언어 간의 문법적 차이점을 자연스럽게 학습할 수 있었어요.
특히 비동기 처리 방식의 차이가 흥미로웠습니다. JavaScript의 async/await
와 Python의 asyncio
가 어떻게 다르게 구현되는지, Promise
와 Coroutine
의 차이점 등을 코드로 직접 비교해볼 수 있었거든요. 한 번에 두 언어의 지식을 얻는 효과가 있었습니다.
5.2 체계적인 기초 지식 제공
0장에서 LLM 기초 지식을 충실히 다룬 점도 좋았어요. 트랜스포머 아키텍처
, 어텐션 메커니즘
, 토큰화
, 프롬프트 엔지니어링
, 파인튜닝
등 AI 배경지식이 전혀 없어도 이후 랭체인 학습에 필요한 필수 개념들을 빠르게 습득할 수 있도록 구성되어 있었습니다.
특히 각 개념을 설명할 때 단순한 정의가 아니라, 실제 사용 사례와 함께 설명해주는 점이 인상적이었어요. 예를 들어 Few-shot
프롬프트를 설명할 때도 "몇 개의 예시를 제공하는 것"이라는 추상적 설명에 그치지 않고, 실제로 어떤 상황에서 효과적인지, 어떻게 예시를 구성해야 하는지까지 구체적으로 알려줬습니다.
5.3 시각적 이해를 돕는 다이어그램
복잡한 AI 개념들을 다이어그램으로 시각화해서 설명한 점도 큰 장점이었어요. 특히 RAG
파이프라인을 설명할 때 문서 입력부터 최종 응답 생성까지의 전체 과정을 플로우차트로 보여준 건 정말 도움이 되었습니다. 벡터 저장소
의 작동 원리도 단순히 "유사도 검색을 한다"는 설명보다는, 실제로 문서가 어떻게 벡터로 변환되고, 쿼리 벡터와 어떻게 비교되는지를 그림으로 보여줘서 직관적으로 이해할 수 있었어요.
6. 아쉬운 점
6.1 LLM 애플리케이션 a to z 개발 내용 부재
가장 아쉬웠던 점은 처음부터 끝까지 하나의 완성된 LLM 애플리케이션을 개발하는 내용이 없었다는 점입니다. 각 장마다 해당 개념을 설명하는 예제는 충실하지만, 실제로 배포 가능한 수준의 애플리케이션을 단계별로 구축해보는 경험은 제공되지 않았습니다.
예를 들어, "문서 기반 Q&A 시스템 만들기" 같은 프로젝트를 통해 요구사항 분석부터 시작해서 데이터 준비, RAG 시스템 구축, UI 개발, 배포, 모니터링까지 전체 개발 사이클을 경험해볼 수 있었다면 더 좋았을 것 같아요.
6.2 최신 모델 반영 할 수 없는 한계
책이 출간된 시점(2025년 5월 14일)이 얼마 되지 않았음에도 벌써 각 LLM 모델의 업그레이드 버전이 많이 나와버렸죠. 책의 예제에서는 `gpt-3.5-turbo-instruct`를 사용하지만, 예를 들어 GPT-4o, Claude 4 같은 새로운 모델들이나, 최신 랭체인 버전의 변경사항들이 반영되지 않은 점은 어쩔 수 없는 한계인 것 같습니다.
다만 어떤 모델을 선택하느냐는 “랭체인을 통해 LLM을 구현한다”는 점을 익히는 과정에서는 크게 영향을 끼치지는 않기 때문에 학습에 지장이 생기지는 않습니다.
7. 이 책을 읽은 덕분에 기대되는 변화
1. 당장 시도해보고 싶은 프로젝트들이 생겼어요. 예를 들어, 회사에서 사용할 수 있는 내부 문서 검색 시스템입니다. 개발팀에서 누적된 기술 문서, 회의록, 가이드 등을 RAG 시스템으로 구축해서 자연어로 검색할 수 있게 만들어보고 싶어요.
2. 랭체인을 통해 배운 개념들이 다른 개발 영역에도 도움이 될 것 같아요. 특히 파이프라인 설계, 상태 관리, 비동기 처리 등의 개념은 일반적인 웹 애플리케이션 개발에도 적용할 수 있을 것 같습니다.
3. 또한 AI 기술의 발전 속도를 고려하면, 지금 배운 기초가 앞으로 더 고급 기술을 학습할 때 탄탄한 토대가 될 거라고 생각해요. 랭체인 생태계 자체도 계속 발전하고 있으니, 이 책으로 기초를 다진 상태에서 새로운 기능들을 추가로 학습해나갈 수 있을 것 같습니다.
앞으로는 AI 도구를 단순히 사용하는 차원을 넘어서, 실제 비즈니스 문제를 해결하는 맞춤형 솔루션을 만들 수 있을 것 같아요.