인프런 커뮤니티 질문&답변
RAG 배포 질문드립니다
작성
·
31
·
수정됨
0
프론트엔드 개발자 입장에서 RAG를 처음 접하다 보니 구조가 잘 이해되지 않아 질문드립니다. 강의를 보다 보니 Streamlit과 LangChain으로 한 곳에서 개발이 이루어지는데, 이게 실무 구조를 단순화한 예제인지, 실제 서비스에서도 이런 형태로 운영되는지 궁금했습니다. 제가 이해한 바로는 일반적인 웹 서비스는 프론트엔드, 백엔드, 일반 DB(MySQL 등)가 분리되어 있고, 여기에 RAG를 구성하기 위한 Vector DB(Qdrant, Chroma, Pinecone 등)와 LLM 호출 로직이 추가되는 구조로 보이는데, 이때 RAG와 AI 에이전트는 보통 백엔드 서버 내부의 로직으로 구현되는지, 아니면 별도의 서비스로 분리해서 운영하는지도 알고 싶습니다.
실무에서 배포 관점에서는 백엔드 서버 하나에 RAG까지 포함해 배포하는 것이 일반적인지, 아니면 RAG나 Vector DB를 별도로 운영하는 경우가 많은지도 궁금합니다. Qdrant를 가장 추천주셔서 이걸사용할까 생각중입니다.
그리고 혹시 그래프 RAG에 대한 강의도 찍으실 예정이 있으실까요?
크게 아래와같이 보고있고(이해한 대로 플로우 그려봤습니다),
백엔드 서버는 FastAPI로 통일할수도 있을것 같습니다.
┌─────────────────────────────────────────┐
│ Frontend (React.js) │
└─────────────────────────────────────────┘
│
┌───────────┴───────────┐
│ │
┌───────▼────────┐ ┌─────────▼────────┐
│ Spring Boot │ │ FastAPI AI │
│ (Main API) │ │ Service │
│ │ │ │
│ - CRUD │ │ - RAG Pipeline │
│ - 비즈니스 로직 │ │ - LLM Agent │
│ - 인증/권한 │ │ - Embedding 생성 │
└───────┬────────┘ └─────────┬────────┘
│ │
│ │
┌───────▼────────┐ ┌─────────▼────────┐
│ PostgreSQL │ │ Vector DB │
│ (비즈니스 데이터) │ │ (임베딩/벡터) │
│ │ │ │
│ - hospitals │ │ - content_embeddings│
│ - contents │ │ - query_cache │
│ - bundles │ │ - document_chunks │
│ - contracts │ │ │
│ - users │ │ (Pinecone/ │
│ - ... │ │ Weaviate/ │
│ │ │ Qdrant/ │
│ │ │ pgvector) │
└────────────────┘ └──────────────────┘답변 1
0
안녕하세요, 좋은 질문 감사합니다. 답변을 드려보자면
강의에서 Streamlit과 LangChain을 한 곳에서 사용하는 이유는 빠른 프로토타이핑 때문입니다 강의에서는 파이썬 코드 하나로 UI와 로직을 모두 처리할 수 있어 로직 검증에 최적화되어 있습니다. 현업에서는 질문하신 대로 프론트엔드와 백엔드를 엄격히 분리합니다. Streamlit은 내부 운영 툴이나 간단한 데모용으로만 쓰고, 실제 서비스는 React/Next.js와 FastAPI/Spring Boot 조합으로 구축하는 것이 일반적입니다. 경험상 프로토타입이라고 Streamlit을 활용해서 배포를 하면, 사용자 요구사항이 늘어나고, streamlit을 streamlit답지 않게 사용하는 경우가 발생합니다
이상적인 상태의 서비스라면 RAG 로직은 별도의 'AI 마이크로서비스(FastAPI 등)'로 분리하는 것이 맞겠지만, 저는 monolithic서버로 운영해도 무관하다고 생각합니다. 인증을 Spring Boot로 꼭 해야한다면 아무래도 AI 관련 라이브러리들이 파이썬으로 많이 구성되어있으니 별도의 서비스를 띄우는게 개발할 때 편하다고 생각합니다. 말씀하신 것처럼 FastAPI로 인증을 통합하신다면 하나로 충분히 갈 수 있을 것 같습니다.
Qdrant는 저는 사용해본적은 없는데 Rust기반이라 빠르다고 하네요, 크게 문제가 될 것 같진 않습니다. GraphRAG는 제가 현업에서 사용한 경험이 없어서 강의로 출시하긴 어려울 것 같습니다.
추가로 궁금하신 부분이 있으시면 말씀 부탁 드립니다





