|
AI로 무언가를 만드는 일은 계속 해왔는데, 정작 "지금 이건 어떤 종류의 문제인가"를 부를 언어가 나에겐 부족했던 것 같다. 손은 바쁜데 머릿속에 지도가 없는 느낌이랄까. 이 책을 집어 든 것도 그 허전함 때문이었다고 생각한다. 읽으면서 가장 도움이 됐던 부분은, 흩어져 있던 도구들을 상황별 '서랍'처럼 정리해 준다는 점이었다. 스타일 제어, 지식 더하기(RAG 계열), 추론 확장(CoT·ToT), 신뢰성 개선(리플렉션·LLM-as-Judge), 에이전트 행동(툴 콜링·멀티에이전트), 제약 조건 해결(비용·지연 최적화), 안전장치(가드레일)까지 7개 범주 32개 패턴으로 나눠 놓았다고 이해했다. 이렇게 늘어놓고 보니 오히려 내가 그동안 어떤 서랍을 아예 안 열어봤는지가 드러나는 느낌이었다. 기대와 달랐던 점도 적어두고 싶다. 코드 수준의 구현 디테일을 바로 가져다 쓰기를 원했다면, 이 책의 결은 조금 다를 수 있다고 생각한다. "이렇게 구현하라"보다는 "이건 이런 이름의 문제이고, 이런 선택지와 대가가 있다"를 정리해 주는 쪽에 가깝다고 느꼈다. 다만 지금의 나에게는 그 편이 더 필요했던 도움이 아니었나 싶다. 특히 성능을 '좋다·나쁘다'가 아니라 비용·지연과 맞바꾸는 저울로 보는 감각이 조금 생긴 것 같다. 정직하게 남기자면, 나는 32개 패턴을 모두 균등하게 소화하진 못한 것 같고, 실제 프로덕션에서 오래 굴려본 경험까지 담은 글은 아니라고 생각한다. 기술 흐름이 빠른 분야라 감상도 시간이 지나면 달라질 수 있다고 본다. AI로 이미 무언가를 만들고는 있지만 자기 작업을 부를 언어가 부족하다고 느끼는 분이라면, 한 번쯤 읽어볼 만하지 않을까 생각한다. 반대로 특정 프레임워크의 튜토리얼을 바로 원하는 분께는 조금 덜 맞을 수도 있을 것 같다. 읽고 나서 가장 오래 남은 생각은, 결국 시야라는 게 내가 몇 개의 서랍을 가졌느냐의 문제일지도 모르겠다는 것이었다. |
|
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다." 제목에 '랭체인 & 랭그래프'가 큼지막하게 박혀 있어서 가벼운 실습서를 기대하고 펼쳤다가, 1장부터 한 대 맞는 느낌을 받았다. 이 책은 도구 사용법을 빠르게 훑는 책이 아니다. 오히려 절반 이상을 자연어 처리와 딥러닝의 기초 이론에 쏟는다. 토큰화·임베딩에서 시작해 강화학습, RNN, LSTM, seq2seq, 어텐션을 거쳐 트랜스포머까지 차곡차곡 쌓아 올린 다음에야 비로소 랭체인과 랭그래프가 등장한다. 요즘 AI 책들은 대체로 기본 개념은 슬쩍 건너뛰고 "이렇게 쓰면 됩니다" 하는 사용법·활용법 위주로 흘러간다. 빠르게 결과물을 내기엔 좋지만, 정작 안쪽에서 무슨 일이 벌어지는지는 끝내 모르고 지나가게 된다. 그런 흐름 속에서 이 책은 꽤 보기 드문 선택을 한다. 딥러닝의 기초부터 트랜스포머 아키텍처까지, 필수 기본 개념을 하나하나 빼놓지 않고 짚고 넘어간다. 이런 책이 점점 귀해지는 시대라, 그 점만으로도 반가웠다. 📌 책의 흐름 — 기초 체력부터 실전 배포까지이 책은 크게 세 덩어리로 읽힌다. ① 기본 개념 (2~4장) 자연어 처리 기초(토큰화, 임베딩, word2vec, 청킹)와 강화학습(다중 슬롯머신, 마르코프 결정 프로세스, 몬테카를로, Q-learning), 그리고 시퀀스 모델(RNN, LSTM, seq2seq, 빔 서치). 트랜스포머라는 산을 오르기 위한 베이스캠프 구간이다. ② 핵심 구조 (5~7장) 어텐션(셀프/멀티 헤드/크로스 어텐션, Query·Key·Value)과 트랜스포머(포지셔널 인코딩, 인코더·디코더), 그리고 LLM의 발전사(RLHF, PPO, InstructGPT, few/one/zero-shot, GPT·LLaMA·BERT). 이 책의 심장부. ③ 실전 활용 (8~12장) Ollama, 허깅페이스 트랜스포머, Llama.cpp, 랭체인, 랭그래프 같은 개발 도구부터 파인튜닝(Full fine-tuning, PEFT, Adapter, LoRA, QLoRA, 양자화), RAG(ChromaDB, 대화형/Iterative/Adaptive RAG), 멀티 에이전트(A2A, MCP), 그리고 Streamlit으로 실제 서비스를 배포하는 데까지. 원리부터 차근차근 가고 싶다면 1장부터, 도구 실습이 급하다면 8장부터 펼쳐도 흐름이 끊기지 않게 구성돼 있다. 📌 좋았던 점1. 요즘 보기 드물게, 기본 개념부터 차근차근 짚는다 이게 이 책의 가장 큰 미덕이라고 생각한다. 요즘 나오는 AI 책들은 기본 원리는 "아시죠?" 하고 넘어간 뒤 곧장 라이브러리 사용법과 활용 예제로 직행하는 경우가 많다. 빠르긴 한데, 막상 에러가 나거나 모델이 엉뚱한 답을 내놓으면 손 쓸 도리가 없다. 결국 도구를 블랙박스로 쓰고 있었던 셈이다. 반면 이 책은 스칼라·벡터·내적·편미분·그래디언트 디센트 같은 기초 수학부터, 강화학습의 가치 함수, 순환 신경망의 동작 원리, 셀프 어텐션의 계산 과정까지 필수 개념을 하나하나 펼쳐서 설명한다. 빠른 결과보다 단단한 토대를 택한 구성이고, 이런 책이 점점 줄어드는 요즘이라 더 값지게 느껴졌다. 2. "트랜스포머가 왜 혁신이었나"를 흐름으로 이해시킨다 대부분의 LLM 책이 트랜스포머부터 시작하는 것과 달리, 이 책은 RNN의 한계 → LSTM의 보완 → seq2seq의 고정 길이 병목 → 어텐션의 등장 → 트랜스포머라는 진화의 맥락을 그대로 따라가게 만든다. 각각이 따로 노는 기술처럼 외우는 게 아니라, "이 기술이 어떤 문제를 풀려고 나왔는지"를 알게 되니 그 기술이 어디서 한계를 드러내는지도 자연스럽게 보인다. Query·Key·Value를 입력 벡터 기준과 입력 행렬 기준, 두 시각으로 풀어주는 부분도 인상적이었다. 3. 그림과 도식이 많다 토큰화, 임베딩, 트랜스포머 내부 처리처럼 말로만 하면 추상적인 개념을 도식으로 풀어주려는 시도가 곳곳에 보인다. 모델 내부 구조는 글자만으로는 멀게 느껴지는데, 그림이 함께 있으니 흐름을 붙잡기가 한결 수월하다. 4. 이론과 실습이 따로 놀지 않는다 3장의 Q-learning을 곧바로 "다음 단어 예측" 강화학습 실습으로 이어붙이거나, 허깅페이스 토크나이저의 input_ids·attention_mask를 직접 찍어보게 하는 식이다. 개념 → 코드의 연결고리가 촘촘하다. 5. 폭이 넓다 — 한 권짜리 지도 랭체인·랭그래프·RAG·LoRA·QLoRA·양자화·A2A·MCP·Streamlit까지, 요즘 여기저기서 들리는 키워드들이 트랜스포머라는 기반 위에서 어떻게 연결되는지 한 권으로 조망할 수 있다. 흩어진 지식의 뼈대를 잡고 싶은 사람에게는 백과사전 같은 든든함이 있다. 📌 아쉬웠던 점수식이 정말, 정말 만만치 않다. 편미분, 그래디언트, 소프트맥스, 손실 함수, 강화학습 가치 함수, RNN의 그래디언트 계산… 그림으로 최대한 풀고자 하는 흔적은 분명하지만, 그렇다고 수식 자체가 쉬워지는 건 아니었다. 딥러닝과 기초 수학에 대한 감이 없는 상태라면 중간중간 "그렇구나" 하고 넘어가게 되는 구간이 있을 것 같기도 했다. 그래서 이 책은 "AI가 궁금한 완전 초보자"보다는, "도구 뒤의 원리까지 이해하고 싶은 개발자"에게 더 잘 맞는다. 제목만 보고 실무 활용법을 빠르게 얻으려던 독자라면 초중반의 방대한 이론 분량이 다소 지루하게 느껴질 수 있다. 📌 이런 분께 추천✅ 랭체인·랭그래프를 단순히 쓰는 수준을 넘어 구조적으로 이해하고 싶은 분 ✅ RAG, 파인튜닝, 로컬 LLM, MCP 같은 최신 키워드를 한 권에서 넓게 훑고 싶은 분 ✅ 트랜스포머가 LLM과 AI 에이전트까지 어떤 흐름으로 이어지는지 알고 싶은 분 ✅ AI 기능을 서비스에 붙이는 걸 넘어, 내부 원리와 한계까지 이해하고 싶은 개발자 🚫 반대로 AI, 딥러닝을 처음 접하는 분이라면 다소 버거울 수 있다. 이 경우 처음부터 완벽히 이해하려 하기보다, 관심 있는 챕터를 먼저 훑고 모르는 부분은 나중에 돌아오는 식으로 접근하는 걸 권한다. 📌 마무리요즘 AI 개발은 도구가 너무 빠르게 바뀐다. 유행하던 라이브러리가 금방 다른 것으로 대체되고, 새로운 프로토콜과 프레임워크가 끊임없이 등장한다. 이런 환경에서 사용법만 익히면 그 지식은 금세 낡는다. 이 책의 진짜 가치는 거기에 있다. 트랜스포머, 어텐션, RAG, 에이전트의 구조를 이해해두면, 새 도구가 나와도 "그래서 안쪽에서 뭐가 달라진 거지?"를 스스로 판단할 수 있다. 이 책은 그 판단 기준을 세워주는 책이다. 솔직히 쉬운 책은 아니다. 읽는 데 시간이 걸리고, 수식과 이론을 마주할 각오도 필요하다. 하지만 LLM을 블랙박스처럼 가져다 쓰는 데서 한 걸음 더 나아가고 싶다면, 충분히 도전해볼 만하다. 지금 당장 모든 걸 이해하지 못하더라도, AI 에이전트라는 분야가 얼마나 넓고 깊은 기반 위에 서 있는지 확인하는 것만으로도 의미가 있었다. |
|
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다. 프론트엔드 개발자로 일한 지 4년 가까이 됐다. AI 공부를 아예 안 한 건 아니다. 학교에서 RAG도 배웠고 랭체인 실습도 해봤고, 파이썬으로 간단한 챗봇 비슷한 것도 만들어봤다. 근데 솔직히 그게 진짜 이해였냐고 하면 자신 없다. chain.invoke() 한 줄 치면 결과가 나왔고, 왜 되는지는 몰랐고, 에러 나면 스택 트레이스 분석하는 게 아니라 구글링부터 했다. 내가 쓰는 도구가 어떻게 동작하는지 전혀 모른 채로, 그냥 블랙박스를 쓰고 있었던 거다. 이 책 제목을 처음 봤을 때 솔직히 겁먹었다. '트랜스포머 아키텍처'라는 단어가 박혀 있으니까. React 컴포넌트 트리 다루는 게 주업인 사람한테 딥러닝 모델 아키텍처라니. 근데 읽다 보니 내가 그동안 얼마나 표면만 긁고 있었는지를 실감하게 됐다. 무섭다기보다는, 몰랐던 게 이렇게 많았구나 하는 느낌이 더 컸다. 제일 인상 깊었던 건 트랜스포머 챕터 자체가 아니라, 거기에 도달하기까지의 흐름이었다. RNN이 왜 한계가 있었는지, 그래서 LSTM이 나왔고, seq2seq가 나왔고, 어텐션이 나왔고, 결국 트랜스포머로 이어졌다는 맥락. 학교에서 배울 때는 각각이 따로 존재하는 기술처럼 느껴졌는데, 이 책을 읽고 나서야 하나의 흐름으로 연결됐다. 기술이 왜 등장했는지를 알면, 그 기술이 어디서 한계를 드러내는지도 자연스럽게 보인다. 그게 단순히 구조를 외우는 것과 다른 점이다.셀프 어텐션 개념도 그랬다. Query, Key, Value라는 단어를 수업에서 들었을 때는 그냥 세 가지 벡터가 있다는 정도로만 알았다. 이 책은 그게 실제로 어떤 계산을 수행하는 건지, 입력 벡터 기준과 입력 행렬 기준으로 두 시각에서 풀어준다. 완전히 다 이해됐다고 하면 거짓말이고, 중간에 멈추고 다시 읽은 부분도 있다. 그래도 '이 구조가 왜 필요한가'의 감은 처음으로 잡혔다. 그 감이 생기기 전이랑 후가 꽤 다르다. 랭체인 코드를 볼 때 예전보다 덜 막막하고, 에러 메시지가 조금 더 읽힌다. 처음엔 강화학습 내용이 왜 이 책에 있는지 의아했다. AI 에이전트 책인데 슬롯머신 문제에 마르코프 결정 프로세스까지 나오니까. 솔직히 그 파트 읽을 때는 좀 지루했다. 근데 나중에 ChatGPT 같은 모델이 사용자 피드백으로 학습하는 방식, RLHF와 PPO 알고리즘이 어떻게 적용되는지를 설명하는 부분에 도달했을 때 이해됐다. 앞에서 개념을 쌓아놓지 않으면 그냥 그런가 보다로 넘어갈 수밖에 없는 내용이었다. 내가 매일 쓰는 AI 도구들이 어떻게 더 나은 답변을 내놓도록 훈련됐는지를 처음으로 이해한 순간이기도 했다. 책 구성이 꽤 치밀하다는 걸 뒤늦게 알았다. 랭그래프는 이 책에서 처음 제대로 봤다. 학교에서 랭체인은 다뤘는데 랭그래프까지는 못 갔었다. 랭그래프가 단순 체인 방식을 넘어서 상태를 가진 그래프 기반의 에이전트를 만들 수 있다는 개념, 즉 조건에 따라 다른 노드로 분기하거나 루프를 돌 수 있다는 구조가 프론트엔드 개발자 입장에서는 오히려 친숙하게 느껴졌다. 리덕스의 상태 흐름이나 유한 상태 머신이랑 비슷한 개념이라고 생각하니까 훨씬 빨리 들어왔다. 이쪽 배경지식이 생각보다 도움이 됐다. RAG 부분도 새로웠다. 학교에서 배운 건 '임베딩해서 벡터DB에 저장하고 유사도 검색으로 컨텍스트 넣기'였는데, 이 책은 거기서 더 나아간다. 쿼리가 단순할 때와 복잡할 때 검색 전략 자체를 다르게 가져가는 Adaptive RAG까지 실습 코드와 함께 다룬다. 단순 RAG와 비교하면서 보니까 어디서 한계가 생기는지가 눈에 보였다. 학교에서 'RAG 좋은 거야'로만 배우고 끝났던 게 조금 아쉬워졌다. 이 책을 먼저 읽었으면 수업이 훨씬 재밌었을 것 같다. 어려웠던 부분도 솔직히 얘기하자면, 파인튜닝 챕터는 한 번에 소화가 안 됐다. LoRA가 왜 저랭크 분해로 파라미터를 줄이면서도 성능을 유지할 수 있는지, QLoRA의 양자화가 정확히 어떤 트레이드오프를 만드는지, 수학적 배경이 약한 상태에서는 읽으면서 그렇구나하고 넘어가는 부분이 꽤 있었다. 억지로 다 이해하려다가 오히려 흐름을 잃을 것 같아서, 이 파트는 맥락만 잡고 나중에 실제로 필요할 때 다시 깊이 파고드는 레퍼런스로 쓰기로 했다. 책이 어렵다기보다 AI가 원래 이 정도 깊이를 가지고 있다는 걸 실감한 거라고 받아들였다. MCP 파트는 반대로 읽으면서 눈이 반짝였다. AI 에이전트가 외부 시스템과 표준화된 방식으로 연결되는 프로토콜이라는 개념인데, 프론트엔드 개발자한테는 REST API나 WebSocket 같은 통신 표준이 익숙하다 보니 'AI 에이전트 세계의 인터페이스 표준'이라고 이해하니까 바로 와닿았다. 요즘 실무에서도 MCP 얘기가 슬슬 나오기 시작하는데, 이 책에서 개념부터 실습까지 다뤄줘서 타이밍이 좋았다. 마지막 Streamlit 챕터는 솔직히 제일 재밌었다. 이론이 아니라 실제로 돌아가는 서비스를 만드는 파트니까. 대화 기억이 되는 챗봇, 랭그래프 기반 에이전트, RAG까지 붙인 AI 서비스를 순서대로 구현하는데, 파이썬 파일 하나로 UI랑 로직을 다 처리하는 Streamlit 방식이 처음엔 이상하게 느껴졌다가 나중엔 프로토타입 만들 때 이게 얼마나 강력한지 이해됐다. 요즘 실무에서 AI 기능을 붙여야 하는 상황이 점점 많아지고 있다. 예전엔 그냥 API 문서 보고 가져다 쓰는 식이었는데, 이 책을 읽고 나서는 조금 달라진 느낌이다. 완전히 이해했다는 게 아니라, 적어도 이 코드가 어떤 원리 위에 서 있는지를 어렴풋이 알고 쓰게 됐다는 거다. 그게 에러 대응할 때 차이를 만들고, 구조를 설계할 때 차이를 만든다. AI 도구를 매일 쓰면서도 속이 어떻게 돌아가는지 한 번도 들여다본 적 없는 개발자라면, 이 책이 꽤 좋은 시작점이 될 것 같다. 다 이해 못해도 괜찮다. 나도 그랬으니까. |