LangChain으로 개발할 때 가장 어려운 건 LLM이 아니다
The hardest part of building with LangChain isn’t the LLM
핵심 요약
LangChain으로 실제 AI 워크플로우를 구축해보니 LLM 자체보다 복잡한 시스템 연동과 상태 관리가 훨씬 어렵다는 현실적인 고충을 다룸.
- 시스템 연동 — LLM 호출보다 도구 연결, 상태 관리, 재시도 로직 구현이 훨씬 복잡함
- 현실과 데모의 괴리 — 온라인 데모는 매끄러워 보이지만 실제 구현 시에는 수많은 예외 상황이 발생함
- 엔지니어링의 중요성 — 안정적인 에이전트 시스템을 구축하려면 상당한 수준의 엔지니어링 노력이 필요함
- 추상화의 한계 — 현재의 프레임워크들이 제공하는 추상화가 실제 운영 환경에서 얼마나 견고한지 검증하는 과정이 필요함
지난 몇 주 동안 X에서 떠도는 뻔한 소리만 읽는 대신 LangChain으로 실제 AI 워크플로우를 구축해봤다. 생각보다 훨씬 지저분하다. 온라인 데모에서는 에이전트 시스템이 아주 세련되고 완성된 것처럼 보인다. 메모리, 오케스트레이션, 도구 같은 것들이 영상에서는 그냥 척척 들어맞는 것 같다.
하지만 내 에디터에서는 상황이 다르다. 대부분의 시간을 엣지 케이스와 싸우고, 고장 난 도구를 고치고, 자신만만하지만 완전히 틀린 답변을 내놓는 결과물과 씨름하며 보냈다. 알고 보니 LLM은 어려운 축에도 못 낀다. 진짜 문제는 배관(plumbing)이다. 모든 것을 안정적으로 잘 작동하게 만드는 건 악몽이다. 재시도, 다단계 도구 호출, 상태 관리, 컨텍스트 드리프트 같은 것들이 끼어드는 순간 시스템은 순식간에 취약해진다.
LangChain, LangGraph, 그리고 커스텀 설정까지 다 시도해봤다. 조금만 복잡해져도 똑같은 신뢰성 문제의 벽에 부딪힌다. 현재의 담론들은 이런 것들을 안정화하는 데 얼마나 많은 엔지니어링이 필요한지 완전히 간과하고 있다. 하지만 이상하게도 이런 작업을 하면서 비관적이기보다는 오히려 더 낙관적이게 됐다. 어떤 추상화가 실제로 버티고 어떤 게 그냥 임시방편(duct tape)인지 보이기 시작했기 때문이다.
데모는 현재의 운영 현실보다 훨씬 앞서 있다. 실제로 코드를 짜는 우리에게 재미있는 부분은 과장된 광고가 아니라, 한계가 어디인지 정확히 파악하는 것이다.

