구원자였던 랭체인은 어떻게 짐덩이가 되었나
사별삼일 즉당괄목상대(士別三日 卽當刮目相對).
선비는 헤어진 지 사흘이 지나면
눈을 비비고 다시 볼 정도로 달라져야 한다는 뜻이다.
AI 바닥에 코 박고 있다 보면 이 말이 뼈에 사무친다.
이 자식들은 진짜 선비가 맞다.
며칠만 한눈팔고 오면 세상이 통째로 바뀌어 있다.
새 모델이 나오고, 새 API가 열린다.
그리고 이 속도전에서 가장 잔인한 명제가 하나 성립한다.
"어제 없으면 안 되던 기술이, 오늘은 있으면 안 되는 기술이 된다."
그 대표적인 희생양,
아니 이제는 내 목을 조르는 짐덩이가 바로 랭체인(LangChain)이다.
불과 1년 전만 해도 랭체인은 신이었다.
그때의 AI는 멍청했다.
기억상실증: 글을 읽을 수 있는 컨텍스트 창이 고작 4K에 불과했다. A4 용지 몇 장 읽으면 앞에 내용을 까먹었다.
눈치 없음: "결과를 JSON으로 줘"라고 백날 빌어도, 꼭 앞에 "네, 알겠습니다! 결과는 다음과 같습니다:" 라는 쓸데없는 말을 붙여서 시스템 파싱을 다 터뜨렸다.
손발 없음: 스스로 검색을 하거나 함수를 실행할 지능이 없었다.
그래서 랭체인이 나섰다.
긴 문서를 잘게 쪼개주고(Chunking),
출력이 틀리면 다시 프롬프트를 먹여서 고쳐주고(Output Parser),
정규식을 떡칠해서 억지로 도구를 쥐여줬다(ReAct Agent).
랭체인 없이는 AI로 제대로 된 앱을 만들 수가 없었다.
모두가 랭체인 문법을 외웠고, 그 위에 시스템을 쌓았다.
그런데 AI가 사흘 만에 너무 똑똑해져 버렸다.
API 제조사들(OpenAI, Anthropic, Google)이 랭체인이 똥꼬쇼하며 구현하던 기능들을 모델 자체에 네이티브로 박아버린 거다.
1. 기억력이 미쳐버렸다 (Massive Context)
4K 짜리 뇌가 128K, 1M, 2M(책 수십 권 분량)으로 커졌다.
문서를 잘게 쪼개고, 벡터 DB에 넣고, 요약하고, 이어 붙이는 복잡한 파이프라인?
이제는 그냥 파일 전체를 텍스트로 통째로 때려 넣으면 끝난다.
2. 말을 기가 막히게 듣는다 (Structured Outputs)
JSON 모드를 켜거나 스키마를 던져주면 100% 완벽한 JSON만 뱉는다.
쓸데없는 인사말을 지우려고 무거운 파서를 붙이고 재시도 로직을 짤 이유가 증발했다.
3. 알아서 도구를 쓴다 (Function Calling)
프롬프트로 구구절절 설명할 필요가 없다. API에 "나 이런 함수 있어"라고 명세서만 던져주면, AI가 알아서 "이 함수를 이 파라미터로 실행해"라고 완벽하게 대답한다.
상황이 이쯤 되니, 랭체인은 나를 돕는 도구가 아니라 나를 가두는 감옥이 되어버렸다.
실제 개발을 하다 보면 랭체인 때문에 빡치는 순간이 한두 번이 아니다.
첫째, 내 프롬프트를 훔쳐 간다 (블랙박스화)
AI 시스템의 핵심은 프롬프트다. 단어 하나, 문장 하나를 깎아야 한다.
그런데 랭체인을 쓰면 내가 쓴 프롬프트 겉에, 랭체인이 내부적으로 덧붙인 수십 줄의 '숨겨진 프롬프트'가 같이 날아간다.
AI가 헛소리를 할 때 원인을 찾으려고 하면, 내 코드를 고치는 게 아니라 랭체인의 깃허브 소스코드를 까보며 "얘네가 뒤에서 무슨 프롬프트를 몰래 섞었지?" 하고 추적해야 한다.
미칠 노릇이다.
둘째, 실패를 우아하게 다루지 못한다
시스템을 살리는 건 실패했을 때의 유연한 대처다.
그런데 랭체인은 이름 그대로 뻣뻣한 '사슬(Chain)'이다.
중간에 API가 한 번 튀거나 파싱이 엇나가면 체인 전체가 멈춰버린다.
"어? 여기서 에러가 났네? 그럼 요 부분만 잘라서 다른 모델한테 가볍게 다시 물어봐야지" 같은 날렵한 제어를 하려면, 코드가 랭체인 전용 문법(LCEL)으로 떡칠이 되면서 스파게티가 된다.
공사장에 가면 건물 겉에 철파이프를 엮어 놓는다.
아시바, 혹은 비계라고 부른다.
건물을 짓기 위해서는 반드시 필요하다.
랭체인은 훌륭한 아시바였다.
AI API의 뼈대가 부실했던 시절, 그 틈을 완벽하게 메워주며 우리가 건물을 올릴 수 있게 해 줬다.
하지만 지금은 API와 모델이라는 건물 뼈대가 너무나 단단해졌다.
건물이 완성됐는데 겉에 아시바를 평생 달고 살 건가?
치워야 한다. 그래야 내 건물이 똑바로 보인다.
이제 거창한 프레임워크는 버린다.
필요한 건 단 세 가지뿐이다.
어떤 불순물도 섞이지 않은 순정 프롬프트
공식 SDK를 이용한 단순하고 투명한 API 호출
실패를 제어하고 다음 스텝을 결정하는 단단한 while 루프와 if 문
이 투박한 생코딩이 랭체인으로 감싼 수만 줄의 코드보다 훨씬 강하다.
예전에는 랭체인이 없으면 안 됐다.
하지만 이제는, 랭체인이 없어야 비로소 제대로 된 AI 시스템을 만들 수 있다.
063 사별삼일 괄목상대: 구원자였던 랭체인은 어떻게 짐덩이가 되었나