LangGraph로 챗봇 만들기: LLM 개발하며 마주한 한계와 해법
2025. 9. 10.
안녕하세요. 컨시언스 파트너스의 백엔드 개발자 Simon입니다.🤓
이번 글에서는 제가 처음으로 LLM 프로젝트를 경험하면서 어떤 과정을 겪었고, 그 속에서 어떤 성장을 했는지 나누고 싶어요!
랭그래프를 선택한 이유
최근 LLM 기반 프로젝트를 진행하면서 LangGraph라는 기술을 사용하게 되었어요. 단순히 모델을 불러 쓰는 걸 넘어서, 상황에 맞게 흐름을 제어하고 상태를 관리할 필요가 있었기 때문이에요.
랭그래프는 그래프 기반으로 워크플로우를 설계할 수 있어서 복잡한 로직도 한눈에 이해하기 쉬웠어요. 특히 상태를 중앙에서 관리할 수 있다는 점이 정말 편리했어요. 실제로 써보니 디버깅이 훨씬 수월했고, 각 노드별 입력과 출력을 추적하기도 좋았어요.
AI 코드 의존의 함정
프로젝트 초기에는 ChatGPT나 Claude에게 코드를 부탁하고 거의 그대로 쓰는 경우가 많았어요. 조건만 잘 말하면 꽤 그럴듯한 코드가 나오니까요. 처음에는 정말 편했는데, 결국 문제가 생겼어요.
어느 날 갑자기 에러가 발생했는데, 원인을 찾는 데 시간이 엄청 오래 걸렸어요. 코드를 꼼꼼히 이해하지 않고 AI가 준 대로만 쓰다 보니, 어디서 문제가 생겼는지 전혀 감을 못 잡았던 거예요. 결국 코드를 하나씩 뜯어보다가 AI가 DB 세션을 잘못 쓰고 있다는 걸 발견했어요. 그때 ‘내가 코드를 제대로 이해하지 못하고 있었구나’라는 걸 크게 깨달았어요.
그 이후로는 AI가 짜준 코드라도 반드시 한 줄 한 줄 확인하고, 이해가 안 되는 부분은 꼭 찾아보거나 다시 물어보는 습관을 들였어요. 특히 LangGraph의 StateGraph나 데이터 전달 부분은 직접 확인하지 않으면 위험하다는 걸 알게 되었어요.
기초 지식과 팩트체킹의 힘
AI에게 기술적인 질문을 할 때도 비슷한 일이 있었어요. 가장 기억에 남는 건 스트리밍 응답을 구현하려고 했을 때예요. AI가 그럴듯한 코드를 주길래 그대로 적용했는데, 알고 보니 진짜 스트리밍이 아니라 단순히 텍스트를 한 글자씩 지연 출력하는 ‘가짜 스트리밍’이었어요.😅
처음엔 속아서 넘어갔는데, 테스트 중 성능 문제가 생기면서 이상함을 알게 되었어요. 그제야 공식 문서를 확인했고, 진짜 스트리밍 API를 찾을 수 있었어요. 이 경험을 통해 아무리 AI가 편리해도 공식 문서 확인과 검증은 필수라는 걸 배웠어요.
지금은 새로운 기능이나 최신 버전과 관련된 내용이라면 반드시 공식 문서나 GitHub 이슈까지 확인하는 습관을 갖게 되었어요.
성장 블로그와 AI 활용법
이런 시행착오들을 겪으면서 성장 블로그를 쓰기 시작했어요. 단순히 기록을 남기려는 게 아니라, 제가 배운 것들을 정리하고 다른 사람과 나누고 싶었어요. 글을 쓰다 보니 자연스럽게 제 생각도 정리되고, 부족했던 지식도 더 단단해지는 걸 느꼈어요.
블로그를 쓰면서 AI 활용법도 달라졌어요. 이제는 통째로 코드를 부탁하기보다, 특정 부분 설명을 요청하거나 제가 작성한 코드를 리뷰해달라고 해요. “이 코드에서 개선할 점이 있을까?”라고 물어보면 훨씬 현실적인 피드백을 얻을 수 있었어요.
앞으로의 방향
돌아보면, AI와 함께 개발하는 것도 하나의 스킬이라는 걸 알게 되었어요. 단순히 의존하는 게 아니라, 어떻게 질문하고 어떻게 검증하느냐가 훨씬 중요하다고 생각해요.
이번 랭그래프 프로젝트를 통해 기술적인 성장뿐만 아니라, AI 시대에 개발자로서 어떤 자세를 가져야 할지도 배웠어요. 앞으로는 새로운 도구와 기술을 접할 때 더 주체적이고 꼼꼼하게 접근하려고 해요.