LangChain
Build context-aware reasoning applications.
— LangChain 공식 문서 헤더
Hello World만 보여주는 양산형 AI 강의의 최대 수혜자이자, 실무자들의 혈압을 올리는 과추상화의 끝판왕. 그냥 f-string이랑 API 직접 호출로 짜는 게 백배 빠르고 직관적일 것 같은데...
1. 개요
생성형 AI와 대형 언어 모델의 폭발적인 유행과 함께 혜성처럼 등장한 오픈소스 LLM 애플리케이션 프레임워크. 기본적으로 API 호출 수준에 머물러 있는 인공지능 모델들을 엮어, 메모리 부여, 문서 로딩, 벡터 데이터베이스 검색, RAG(검색 증강 생성) 구성 등을 한 번에 해결해 주는 구조를 지향한다. 그러나 지나친 추상화와 하루가 다르게 깨지는 하위 호환성(Breaking Changes) 덕분에 프론트엔드와 백엔드를 막론하고 수많은 개발자들에게 '애증의 프레임워크'로 군림하고 있다.(...)
2. 지나친 추상화와 레고 블록의 역설
LangChain은 프롬프트 템플릿, 모델 호출, 출력 파싱 등을 하나로 묶어 체인(Chain)이라는 단위로 제공한다. 초창기에는 LLMChain 하나면 끝났지만, 프레임워크가 비대해지면서 도입된 LCEL(LangChain Expression Language)은 파이프 연산자(|)를 적극적으로 활용한 기괴한 문법 구조를 자랑한다. 개발자들은 직관적인 코딩 대신 RunnableSequence 같은 추상 클래스 내부 동작을 뜯어보며 디버깅을 해야 하는 처지에 놓였다.1 결국 간단한 API 호출을 몇 겹의 래퍼 클래스로 감싸다 보니 성능 저하는 물론이고, 디버깅을 하려면 수십 단계의 콜백 스택 트레이스를 뒤져야 하는 참사가 흔히 발생한다.(...) 게다가 파이썬 버전과 자바스크립트 버전인 LangChain.js의 싱크마저 미묘하게 어긋나 다중 언어 환경에서는 대혼란이 펼쳐진다.
3. 매일 밤 몰래 바뀌는 API와 버그의 대환장 파티
버전 업데이트 속도가 기괴할 정도로 빠르다. 어제 작성해서 정상 작동하던 프로덕션 코드가 오늘 아침 패키지 업데이트 이후 데드 코드가 되는 신비를 체험할 수 있다.2 from langchain.llms import OpenAI에서 from langchain_openai import ChatOpenAI로 마이그레이션하라는 경고 메시지가 터미널을 가득 채우는 것은 일상이다. 프레임워크 기여자들이 열심히 PR을 날리고 있으나, 정작 핵심 코어의 설계 결함이나 내부 버그는 덮어두고 새로운 벡터 데이터베이스 커넥터나 SaaS 연동 툴만 기하급수적으로 늘려나간다는 비판을 피하지 못하고 있다.
4. 관련 밈 및 드립
4.1. LangChain을 쓰지 않는 것이 최고의 최적화
커뮤니티와 실무 개발자들 사이에서 전설처럼 내려오는 경구. 처음에는 LangChain으로 RAG 파이프라인을 구축했다가, 잦은 에러와 느린 속도, 그리고 커스터마이징의 한계에 봉착한 시니어 개발자들이 결국 프레임워크를 걷어내고 순수 파이썬 f-string과 직접 작성한 API 호출 코드로 리팩토링했더니 성능은 3배 빨라지고 코드 라인 수는 절반으로 줄었다는 무용담이 쏟아지며 하나의 밈으로 정착했다. 실제로 엔터프라이즈급 프로덕션 환경에서는 랭체인을 단순 프로토타이핑용으로만 쓰고 실제 배포 시에는 자체적인 가벼운 파이프라인을 직접 구축하는 경우가 허다하다.
4.2. Import Error 생태계
라이브러리가 하도 쪼개지고 합쳐지다 보니(langchain-core, langchain-community, langchain-openai 등) 마이너 업데이트 한 번에 임포트 경로가 몽땅 꼬이는 현상을 비꼬는 밈. 어설프게 스택오버플로우나 챗GPT가 2023년에 작성한 LangChain 예제 코드를 긁어왔다가는 100% 확률로 ModuleNotFoundError 혹은 DeprecationWarning 폭탄을 맞이하게 된다. 개발자들은 코딩 시간의 절반을 로직 짜는 데 쓰고, 나머지 절반은 올바른 임포트 경로를 찾아 깃허브 이슈를 뒤지는 데 허비한다는 자조 섞인 드립이 유명하다.
5. 여담
- 랭그래프(LangGraph)의 구원 투수 등판: 기존의 단방향 그래프나 단순 체인 구조로는 에이전트의 복잡한 루프(Loop)를 구현하기 어렵다는 한계를 자인하고, 아예 상태 머신 기반의 LangGraph를 새로 내놓았다. 이로 인해 기존 LangChain의 Agent Executor는 대대적인 감축과 Deprecation 절차를 밟게 되었다.(...)
- 앵무새 로고의 비밀: 랭체인 로고에 있는 귀여운 앵무새는 LLM이 문맥을 이해하지 못하고 그저 그럴듯한 텍스트를 따라 읊는 '확률적 앵무새(Stochastic Parrot)' 이론에서 따온 것이 아니냐는 풍자가 있다. 물론 공식적으로는 인정하지 않았지만 업계인들은 누구나 그렇게 믿고 있다.
- 엄청난 투자 유치: 수많은 악평과 버그 속에서도 2023년 시드 라운드에서 무려 1,000만 달러, 세쿼이어 캐피털 등으로부터 시리즈 A에서 2,000만 달러 이상의 막대한 투자금을 유치하며 기업 가치를 폭발적으로 올렸다. 개발자들의 피와 눈물, 그리고 매주 발생하는 마이그레이션 고통이 자본력으로 치환되었다는 냉소적인 평가를 받는다.