25년이 넘는 경력을 지닌 소프트웨어 엔지니어로, 주로 금융 분야에서 활동해왔으며 투자은행, 자산운용사, 브로커, 거래소 등 금융 산업 전반을 두루 경험했다.
현재 헤지펀드의 재무 기능을 위한 퀀트 개발을 총괄하는 동시에 여러 생성형 AI 이니셔티브도 이끌고 있다. 『Building Ethereum Dapps』(매닝, 2019)의 저자이기도 하다.
2022년 후반에 들어서면서 한 가지 변화가 일어났다. 거대 언어 모델(LLM, Large Language Model)은 더 이상 실험실 기술로 머물지 않았고, 실제 쓸모 있는 도구가 되기 시작했다. 문단 하나를 요약해보려던 간단한 시도는 질문에 답하는 챗봇으로 발전했고, 별 볼 일 없던 스크립트는 다른 팀들도 써보고 싶어 하는 서비스로 바뀌었다. LLM은 더 이상 신기한 구경거리가 아니라, 필수적인 소프트웨어 개발 도구로 빠르게 자리매김했다.
이 점이 매우 고무적인 이유는 다음과 같다. LLM은 소프트웨어가 마치 인간의 언어를 구사하듯 작동한다. LLM은 계약서를 수정하고, 로그를 의미 있는 답변으로 바꾸고, 코드의 초안을 작성하고, 다음 단계를 계획할 수 있으며, 나아가 그 작업을 실제로 수행하기 위해 적절한 도구와 데이터를 호출할 수도 있다. 검색과 도구 사용이 결합되면, 애플리케이션은 더이상 경직된 기계가 아니라 점차 협력적인 파트너에 가까운 존재로 느껴지기 시작한다. 잠재
력이 상당하지만, 그 잠재력을 양산 시스템으로 만드는 일은 단순하지 않다. 데이터 흐름을
통합하고, 효과적인 프롬프트를 설계하고, 검색을 통해 답변의 근거를 확보하고, 다단계 워크플로를 오케스트레이션(orchestration)하며, 배포 이후 시스템이 어떻게 동작하는지 모니터링하는 세심한 작업이 필요하다.
나 역시 여타 개발자와 비슷한 경로를 따라 이 분야에 들어오게 됐다. 처음에는 Jupyter Notebook에서 실험을 하며 API를 탐색했고, 모델이 어디에서 잘 작동하고 어디에서 한계를 드러내는지 배워갔다. 이러한 초기 탐색은 점차 발전했으며, 생산성 향상을 원하는 소수의 초기 사용자들을 위해 직장에서 진행한 소규모 에이전트 기반 사이드 프로젝트로 이어졌다. 기술이 발전하면서, 즉 OpenAI의 API가 개선되고, LangChain의 기능이 확장되고, LangGraph의 오케스트레이션 역량이 강화되고, 고도화된 검색 증강 생성(RAG, Retrieval-Augmented Generation) 및 ReAct와 같은 기법이 새롭게 등장하면서, 프로토타입은 점점 더 정교해졌다. 이와 동시에 이 책을 집필하기 시작했다. 빠르게 변화하는 기술로 인해 1개의 장을 막 끝내고 나면 불과 몇 주 지나지 않아 그 장의 기술들이 이미 뒤처진 것으로 느껴진 적도 한두 번이 아니었다. 이는 무척 고무적이면서도, 때로는 몹시 지치는 일이기도 했다.
그러한 경험은 이 책의 방향성에 큰 영향을 미쳤다. 매번 새로 등장하는 매개변수나 오래 가지 않는 '모범 사례'를 좇기보다, 이 책에서는 안정적으로 검증돼 신뢰할 수 있는L LM 애플리케이션의 기반을 이루는 개념, 아키텍처, 설계 패턴에 초점을 맞췄다. 책에서는 실제로 동작하는 시스템(엔진, 챗봇, 에이전트)을 구축하지만, 궁극적인 목표는 재사용 가능한 기반을 제공하는 데 있다. 즉, 검색을 어떻게 구조화할 것인지, 프롬프트를 어떻게 설계할 것인지, 체인chain2을 어떻게 구성할 것인지, 시스템의 동작을 어떻게 평가할 것인지, 그리고 다단계 워크플로를 어떻게 명확하고 자신 있게 오케스트레이션할 것인지를 다룬다.
프레임워크는 이 과정에서 핵심적인 역할을 한다. LangChain은 로더, 분할기, 임베딩, 검색기, 벡터 저장소, 프롬프트 같은 필수 구성 요소를 표준화함으로써, 프로젝트마다 파이프라인 작업을 처음부터 다시 수행할 필요를 없애준다. LangGraph는 이를 확장해 그래프로 워크플로를 구조화하고 에이전트 루프를 조율하며, LangSmith는 가시적인 정보를 통해 디버깅과 평가를 용이하게 해준다. 이들 모두 개발자가 기반 인프라가 아닌 애플리케이션 그 자체에 집중할 수 있게 해준다.
이 시점에서 이 책의 필요성은 다음과 같다. 비로소 기반이 충분히 안정돼 이제 효과적으로 가르칠 수 있는 단계에 도달했다. 그리고 필요성 또한 어느 때보다 커졌기 때문이다. 개발 팀은 특정 벤더나 임시 방편이 아니라, 아이디어와 구현 사이의 간극을 메워줄 실질적 지침을 원한다. 이 책의 목표는 독자 스스로 LLM 기반 시스템을 구축하기 위한 명확한 개념을 갖추고, 신뢰할 수 있는 검증된 패턴들을 익히며, 계속 변화하는 환경 속에서도 지속적으로 시스템을 구축해 나갈 수 있는 자신감을 얻게 해주는 것이다.