Monthly Lab
로그인
실험기록

LLM 앱, 이 조합으로 시작했습니다 : Chainlit + LangFuse + Supabase

J
Joshua
2025년 7월 5일1년 전
Category
  1. LLM
  2. Tech

우리가 세운 3가지 가설

LLM 서비스를 처음 만들기로 했을 때, 우리가 가장 먼저 고민한 건 이거였다.
"빠르게 만들 수 있을까? 그리고 그게 실제로 쓰일까?"
복잡한 아키텍처, 거대한 클라우드 인프라, 멋진 MLOps 도구. 처음부터 그런 걸 겨냥한 건 아니었다. 우리에겐 작지만 명확한 구조가 필요했고, 몇 주 안에 움직이는 서비스를 직접 보고 싶었다.
그렇게 우리는 하나의 실험실을 꾸리기로 했다. 매달 새로운 가설을 세우고, 빠르게 실험하고, 그 결과를 기록하는 “월간 실험실” 시리즈다.

가설-1: Chainlit UI만으로 MVP는 충분할까?

LLM 기반 앱에서 가장 중요한 건 프론트엔드가 아니다라는 전제가 있었다. 대부분의 사용자 경험은 결국 대화 인터페이스에 머물고, 우리가 만든 게 실제로 쓰이는지 확인하려면 UI보다는 로직과 성능, 그리고 "대화 품질"이 더 중요하다고 생각했다.
•
그렇다면 정말 별도 프론트엔드 없이도 괜찮을까?
•
React/Vue 없이 Chainlit만으로 충분할까?
•
사용자에게 신뢰를 줄 만큼 깔끔한 UI는 가능한가?
•
간단한 커스터마이징(로고, 색상, 말풍선)만으로도 브랜드 인식에 도움이 될까?
이 질문들을 담아, 첫 MVP는 FastAPI + Chainlit + Bootstrap 조합으로 구성했다. 클론 수준이 아닌, 실제 서비스를 최소한으로 동작시킬 수 있는 구조였다.
Chainlit은 LLM 기반 애플리케이션을 빠르게 구축하고 배포할 수 있도록 설계된 오픈소스 프레임워크다. 특히 챗봇 UI에 최적화되어 있어, 복잡한 프론트엔드 코딩 없이도 Python 코드 몇 줄만으로 대화형 앱을 구현할 수 있다는 점이 강점이다. LangChain, LlamaIndex 등 주요 LLM 툴들과도 쉽게 통합되며, 세션 관리나 대화 흐름 추적, 사용자 인터랙션 구현 등도 기본적으로 지원한다.
처음 이 스택을 고를 때 가장 크게 고려한 점은 개발 속도였다. 실제 사용자 피드백을 빠르게 확인하기 위해선, 번거로운 프론트 작업 없이 MVP를 완성할 수 있어야 했고, Chainlit은 그 목적에 잘 들어맞았다. 대화형 인터페이스만으로도 초기 실험엔 충분하다는 가설 아래, React나 Vue 없이도 빠르게 결과를 보여줄 수 있는 최적의 도구였다.

가설-2: LangFuse와 Supabase만으로 운영 가능한가?

LLM을 써보면 바로 느낀다.
"왜 이 답이 나왔는지 알 수가 없다."
LLM의 불확실성은 처음엔 재밌지만, 서비스 입장에선 굉장히 불편한 요소다.
그래서 LangFuse를 도입했다. 프롬프트 변경 추적, 토큰 사용량, 히스토리 관리, 심지어 A/B 테스트 까지 모든 것이 다 들어있다. 특히 LangChain과 연동이 부드러운 것도 장점이다.
이걸 통해 궁금해졌다.
LangFuse만으로 디버깅과 프롬프트 성능 추적이 충분할까?
실무에서 진짜 “필요한 정보”를 얼마나 빠르게 찾을 수 있을까?
로그 외에도 개선 포인트를 찾는 데 도움이 될까?
그리고 Supabase. 로그인, DB 저장, 함수 호출까지 한 번에 해결되며, 초기 비용은 거의 0원이다. RLS도 있고 PostgreSQL 기반이라 학습 곡선도 낮다.
"Supabase 하나로 저렴하면서도 안정적인 운영이 가능할까?"
이 역시 우리의 실험 항목 중 하나이다.

가설-3: 이렇게 빠르게 만든 서비스, 진짜 사람들이 쓸까?

기술적으로 서비스가 돌아간다고 해서, 그게 곧 의미 있는 사용으로 이어지는 건 아니다. 그래서 가장 중요한 실험은 어쩌면 이거였는지도 모른다.
"이렇게 만들어진 LLM 앱을 사람들이 진짜 사용할까?"
많은 예산이 투입된 마케팅도 없고, 대형 채널을 활용한 배포도 아니었다. 우리는 그냥, 아주 작은 범위 안에서 소규모 홍보만 진행할 것이다. 그 상태에서도 누군가가 흥미를 느끼고, 직접 가입하고, 질문을 던지고, 심지어 파일을 업로드해서 대화를 시작할까? 그게 궁금했다.
단순한 LLM 앱으로도 사람들의 반응을 확인할 수 있을지, 그저 내 눈으로 직접 보고 싶었다. 실제로 어떤 유형의 질문이 자주 나오는지, 어디서 맥이 끊기는지, 어떤 지점에서 이탈하는지. 이런 데이터는 단순 로그가 아니라 다음 앱을 설계할 때 반드시 참고해야 할 실마리다.
잘 만든 기능이 아니라, 잘 쓰이는 기능. 멋진 모델이 아니라, 다시 돌아오게 만드는 흐름. 우리는 그것들을 이 실험에서 찾고 싶었다.

진짜 이렇게 해서 될까?

그래서 우리는 진짜 그렇게 해보기로 했다. Chainlit만으로 어디까지 만들 수 있는지, 그걸로 MVP가 될 수 있는지, 직접 검증해보자는 거였다. 완벽하진 않아도, 돌아가기만 하면 되는 구조. 화려하진 않아도, 실제 대화를 주고받을 수 있는 인터페이스.
“이렇게 만들어도 진짜 쓸 수 있을까?”
그 물음에 답을 찾기 위한 첫 번째 실험이, 그렇게 시작됐다.
'Monthly Lab' 구독하기
사이트를 구독하면 새 포스트 등 최신 업데이트를 알림과 메일로 가장 먼저 받아보실 수 있습니다.
Slashpage에 가입하고 'Monthly Lab'을 구독하세요!
구독
👍