최근 읽은 MCP에 대한 책 한권을 소개해 봅니다. 사실 길벗에서 출간된 <나만의 MCP 만들기 with 커서> 책을 먼저 읽었는데, 책을 회사에 두다보니 제이펍에서 출간된 <MCP로 똑똑하게 일하는 법>을 먼저 정리하게 되었습니다. 두 책은 MCP를 다루고 있지만 대상 독자층이 다릅니다. 길벗책은 개발자를 위한 MCP 기술 입문서인 반면 제이펍 책은 비개발자를 위한 MCP  활용입문서라 생각됩니다.

앞에서 말한 것처럼 이 책은 개발자가 아닌 일반 AI 사용자가 MCP라는 것을 이해하고 활용하기 위한 책이라 생각됩니다. 개발자가 읽기에는 조금 심심합니다. 개발자인 저는 MCP를 LLM AI에게 능력(capability)을 확장하는 표준 프로토콜로 이해하고 있습니다. 대규모의 데이터를 학습한 AI가 자신의 데이터를 분석하여 자신의 행동 결과를 개선하여 객관적이고 최적화된 의사결정을 내림으로써 불확실하고 복잡한 실제 문제를 해결하는 것이 MCP의 핵심 과업이라 생각합니다.. 

 

이 책은 MCP 자체 보다는 MCP를 활용하여 일하는 법을 다루는 책이고, 일을 잘하기 위하여 나는 MCP를 어떻게 활용할 수 있는지를 소개합니다. 실제로 3장의 MCP활용 가이드를 보면 MCP Host에  설정하여 사용할 수 있는 Google Map MCP, Slack MCP, Sequential thinking MCP와 같은 서비스를 소개하고, 4장은 회의록 관리, 데이터 분석, 정보 검색, 전략 설계에 MCP를 결합하여 사용하는 비즈니스 문제를 해결하는 사례를 보여줍니다.

 

책을 읽는 도중에  Agent라는 용어에 대한 궁금점이 생겼었습니다. 활용사례를 보면 지극히 개인화된 비서 역할이 더 맞는 것 같은데, Agent라는 이름을 왜 붙였을까? 곰곰히 생각해 보면  지시를 받아 수행하는 비서에 비해 좀 더 높은 자율성과 학습성을 가지고 능동적으로 동작하기 때문이 아닐까 하는 생각이 들었습니다.

 

AI의 개념부터 MCP 활용사례까지 잘 정리해 주는 책이기 때문에, 이른바  AI 리터러시를 갖추고 싶은 사무직 직장인이나 업무 프로세스 DX 를 담당하고 있는 분이라면 한번쯤 읽어볼만합니다.Neo의 평점은 3.5입니다. 

 

다음은 책을 읽으면서 제 눈길을 끌었던 부분들입니다.

 


AI의 학습 방법과 형태

* 지도학습: 정답이 분류된 데이터를 통해 입력과 출력사이의 관계를 배우는 방식

* 비지도학습: 정답없이 데이터 자체의 구조와 패턴을 발견하는 방식. 데이터의 내재된 특성을 파악

* 강화학습: 시행착오를 통한 학습. 행동을 취한 후 그 결과에 따라 환경으로 부터 보상이나 벌점을 받으며 학습하는 방식

 

전통적 컴퓨터 시스템은 정확학 규칙과 알고리즘을 통해 계산과 데이터 처리 수행에 탁월. 

AI시스템은 방대한 데이터를 분석하여 자신의 행동을 개선함으로써 객관적이고 최적화된 의사결정을 내릴 수 있게 됨. // 컴퓨터만 그럴까?

 

MCP 서버의 구성요소

리소스: AI에게 제공되는 데이터

도구: AI가 실행할 수 있는 기능

프롬프트: 특정 작업을 위한 대화의 시발점

 

메시지의 맥락이 보존되는 환경에서 팀원들은 더 깊은 이해와 연결성을 바탕으로 협업할 수 있다.

회사에서 회의란 정보 공유 및 의사결정의 핵심 통로

모든 것을 아는 것보다 중요한 것을 아는 것에 집중할 수 있다.

 

데이터가 의미를 갖기 위해서는 가공되어 정보가 되어야 하고, 그 정보에서 의사결정에 도움이 되는 통찰을 얻어야만 인사이트가 된다.

데이터의 가치는 그것을 분석하고 해석할 수 있는 능력에 달려 있다.

 

AI와 MCP의 결합은 직장인들에게 전략적 사고의 지평을 넓혀주는 강력한 도구

AI를 단순한 도구가 아닌 전략적 파트너로 바라보는 관점. AI가 제공하는 분석과 제안은 항상 우리의 경험, 직관, 판단력과 결합될 때 최고의 결과를 만들어 낸다.

반응형

    "한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다."

 

 

개발분야와 관련된 동영상을 보다보면 한번쯤 '조코딩'이라는 채널명을 만난 적이 있을 것입니다. 꽤 많은 동영상을 촬영하는 분입니다. 조코딩의 동영상 강의 중에서 랭체인에 관한 내용이 이번에 한 권의 책으로 묶어져 나왔네요. 바로 한빛미디어에서 나온 <AI 에이전트 서비스 만들기>입니다.

 

 

회사에서 아마존  베드락 기반의 RAG 서비스를 개발/운영하고 있다보니 RAG 시스템이 어떻게 동작하는지, 임베딩 모델과 벡터 저장소의 관계는 무엇인지 정도는 알고 있습니다. 하지만 최근 테크 밋업에 가보니 RAG를 랭체인/랭그래프로 구현한 이야기들을 많이 들을 수 있었습니다. 그래서 최근 화두인 에이전트와 랭체인에 대해 한번 훑어보고 싶어하던 차에 이 책을 살펴보게 되었습니다.

 

조코딩 책의 장점은 각 장에서 설명하는 개발 내용을 예제 서비스로 만들어보는 형태로 풀어낸다는 점입니다.  

1부에서는 랭체인이 어떤 프레임워크인지를 이해하기 위하여 인공지능 시인과 PDF를 기반으로 채팅을 하는 시스템을 개발합니다. 주로 기본적인 LLM, RAG, OpenAI API, LangChain 개념과 환경 설정에 집중하여 설명하고 있습니다.

2부에서는 LangChain의 주요 구성 요소를 살펴봅니다. 파이프 문자를 이용한  LangChain의 LLM 체인 생성을 집중적으로 살펴 봅니다. 특히 Ollama와 Streamlit(파이썬 웹 애플리케이션 프레임워크)로 리뷰 평가 AI/시인/다국어 이메일 생성기 서비스를 만듭니다. 이 과정에서는 RAG라기 보다는 어떤 PDF 문서를 올리거나 텍스트 프롬프트를 주고 API를 호출하여 웹 애플리케이션으로 결과를 보여주는 과정을 보여줍니다.

3부부터는 본격적으로 RAG 시스템을 구축합니다. 여기서부터는 텍스트/PDF 문서를 임베딩(벡터화)하여 ChromaDB 벡터 저장소에 저장하고, 사용자의 질의를 벡터화하여 유사한 결과를 찾아 다시 내용을 요약해서 출력하는 서비스를 만듭니다. 현진건 작가의 소설을 임베딩하고, 사용자가 마치 현진건 선생과 멀티턴 방식의 대화를 나누는 서비스를 만듭니다.

4부에서는 ChromaDB대신 FAISS를 저장소로 사용하고, 이를 기반으로 유사성 검색을 구현합니다. 결국 RAG는 문서 Load -> Split -> Embed -> Store한 다음, Question-> Retrieve -> LLM을 이용한 답변 생성 과정으로 이루어집니다. 다양한 Loader, Splitter, Retriever의 사용 사례를 볼 수 있습니다.

5부에서는 검색 품질을 올리기 위한 여러 방법을 소개합니다. 예를 들어 하나의 질문을 확장된 여러가지 질문으로 파생시켜 검색하는 multiquery 기법, 키워드 검색이 중점인 BM25와 Chroma기반의 벡터 검색을 결합하는 하이브리드 검색 시스템(EnsenbleRetriever 사용)을 설명합니다.

6부에서는 멀티모달을 다룹니다. 텍스트가 아닌 멀티모달 RAG를 구현하는 방법, 이미지 기반의 검색 시스템을 만들어 봅니다.

7부에서는 에이전트가 주제입니다. Function Call을 구현하여 LLM을 장착한 Agent 서비스를 만들어 봅니다. 워크플로를 만드는 것이 7부의 핵심이네요.

8부는 7장에서 익힌 에이전트를 이용하여 CrewAI 기반으로 복합 페르소나를 가진 여러 에이전트를 만들고 이들이 협업하여 결과를 만들어 내는 시스템을 만듭니다. 예제로는 주제어를 입력하면 블로그 글을 만들어 주는 리액트 웹앱을 만듭니다.

 

전체적으로 RAG/랭체인을 이해하기 위한 입문서로 적절해 보입니다. 코드도 친절하게 변경되는 부분을 표시해가면서 완성합니다.  랭체인으로 서비스를 만들려면 파이썬을 알아야 하는데, 기본적인 문법만 익혀도 이 책을 보는데에는 아무런 문제가 없습니다. 개발 언어에 너무 걱정하지 않아도 될 것 같습니다. 기본 문법 외에 람다 함수와 컴프리헨션 기법 정도만 익히고 시작하시면 됩니다.

 

전체적으로 RAG의 구조를 이해하고, 각 하위 구성요소들이 어떻게 협업하는지를 이해하는데 도움이 되는 책입니다. 그러면서도 예제 프로젝트를 만들어 보면서 실무의 경험을 살짝 경험할 수 있습니다. 저는 231쪽의 청크 사이즈와 오버랩 사이즈 예제가 좋았습니다. 이런 정보들은 만들면서 찾아보고 실험해봐야 얻는 지식이니깐요.

 

그리고 OpenAI의 Embedding 모델인 text-embedding-ada-002는 항상 1536 차원의 고정 크기 벡터라는 것도 알았습니다. :)

 

이제 베드락으로 초반에 연동했던 서비스를 LangChain으로 구현해 봐야겠네요. RAG 시스템을 구현하기 위해 입문서를 찾으신다면 괜찮은 책이라 생각됩니다. 비슷한 책으로 테디노트님의 책이 있습니다. 이 책도 한번 같이 읽어봐야겠습니다.

 

반응형

+ Recent posts