본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 21. 15:56

DeepSeek으로 RAG를 더 빨리 구축했더라면 좋았을 텐데 — 상세 분석

요약

GPT-4o 대신 DeepSeek과 Qdrant를 활용하여 RAG 시스템의 구축 비용을 획기적으로 절감한 사례를 분석합니다. 비용 효율적인 모델 스택 전환을 통해 검색 품질을 유지하면서도 마진을 확보하는 실무적인 방법을 제시합니다.

핵심 포인트

  • GPT-4o 대비 DeepSeek V4 Flash 사용 시 출력 비용 약 9배 절감 가능
  • RAG 시스템에서 토큰 소모량에 따른 운영 비용 예측의 중요성
  • DeepSeek, Qwen, Qdrant를 조합한 저비용 고효율 기술 스택 제안
  • 1인 개발자 및 스타트업을 위한 실무적인 RAG 비용 최적화 전략

DeepSeek으로 RAG를 더 빨리 구축했더라면 좋았을 텐데 — 상세 분석

3개월 전, 저는 한 물류 스타트업의 내부 지식 베이스(knowledge base) 구축 계약을 맡았습니다. 그들은 배송 문서, 고객 서비스 상담 기록, 그리고 뒤섞인 PDF 계약서들을 대상으로 하는 RAG(Retrieval-Augmented Generation, 검색 증강 생성)를 원했습니다. 저의 초기 견적은 제가 합리적이라고 생각한 기준, 즉 임베딩(embeddings)과 생성 레이어(generation layer)를 위한 GPT-4o, 그리고 이미 익숙한 벡터 스토어(vector store)를 바탕으로 산정되었습니다. 하지만 첫 주가 끝날 무렵, 저는 MVP(Minimum Viable Product, 최소 기능 제품)를 출시하기도 전에 제 마진(margin) 전체를 잡아먹을 법한 청구서를 마주하게 되었습니다.

그때 저는 Qdrant와 함께 DeepSeek을 사용하여 전체 시스템을 다시 구축했습니다. 고객에게 보내는 제 인보이스(invoice) 금액은 절반 이상 줄었습니다. 저의 실제 순수입은 늘어났습니다. 그리고 검색 품질(retrieval quality)은 나빠지기는커녕 더 좋아졌습니다. 제가 정확히 어떻게 이 작업을 수행했는지, 비용은 얼마나 들었는지, 그리고 주의해야 할 점(gotchas)은 무엇인지 설명해 드리겠습니다.

프로젝트를 거의 포기할 뻔했던 이유

프리랜서로 일할 때 아무도 말해주지 않는 RAG 가격 책정의 핵심이 있습니다. 컨텍스트 윈도우(context window)에 들어가는 모든 토큰(token)은 과금 대상이라는 점입니다. 모든 검색(retrieval)은 프롬프트(prompt)에 채워질 청크(chunk)를 가져옵니다. 답변이 좋지 않아 다시 생성(regeneration)할 때마다 더 많은 토큰이 소모됩니다. 출력 토큰 100만 개당 10.00달러인 GPT-4o의 수치를 계산해 보았을 때, 5개의 검색된 청크가 포함된 단 하나의 긴 답변이 쿼리(query)당 약 0.02달러의 비용을 발생시킨다는 것을 깨달았습니다. 이를 고객이 예상하는 월간 50,000회의 쿼리에 곱하면, 임베딩 비용, 벡터 스토어 비용, 그리고 제 인건비를 고려하기도 전에 생성 비용만으로 갑자기 1,000달러라는 금액이 눈앞에 나타났습니다.

저는 1인 기업입니다. 시리즈 A(Series A) 투자를 받은 상태가 아닙니다. 저는 시간당 95달러를 청구하며, 계산이 맞으려면 모든 인보이스의 최소 60%는 이익으로 남겨야 합니다. 대화량이 많은 RAG 워크로드(workload)에 GPT-4o를 사용하는 것이 합리적인 시나리오는 이 프로젝트 어디에도 없었습니다.

마진을 지켜준 스택(Stack)

주말 동안의 테스트 끝에, 저는 다음과 같은 조합을 결정했습니다:

  • DeepSeek V4 Flash 생성용 ($0.27/M input, $1.10/M output, 128K context)
  • Qwen3-32B embeddings 벡터화용 ($0.30/M input, 32K context)
  • 월 $12 규모의 Hetzner 서버 상 Docker 컨테이너에서 실행되는 Qdrant
  • 5개의 서로 다른 벤더 관계를 관리할 필요가 없도록 통합 게이트웨이 역할을 하는 Global API

GPT-4o와 비교한 실제 수치를 보여드리겠습니다. 이것이 제가 고객에게 변경 주문(change order)을 설명할 때 보여주었던 슬라이드입니다:

모델Input $/MOutput $/MContext
DeepSeek V4 Flash0.271.10128K
...

GPT-4o의 출력(output) 수치를 보십시오. 백만 토큰당 $10.00입니다. DeepSeek V4 Flash는 $1.10입니다. 이는 RAG 비용에서 실제로 큰 비중을 차지하는 항목에서 약 9배의 비용 절감이 가능하다는 뜻입니다. 두 스택 모두에 예상 사용량을 대입해 본 결과, DeepSeek 경로가 엔드 투 엔드(end-to-end) 기준으로 40-65% 더 저렴했습니다. 고객은 열광했고, 저도 열광했습니다. 모두가 승리하는 결과입니다.

제가 실제로 배포한 코드

단순한 장난감용 코드 조각이 아니라, 실제 프로덕션 코드를 보여드리고 싶습니다. 모든 서비스 호출이 Global API의 통합 엔드포인트를 통하도록 제가 구축한 래퍼(wrapper)입니다. 하나의 베이스 URL(base URL), 하나의 API 키만 있으면, 아무것도 다시 작성할 필요 없이 184개의 모델 중에서 선택할 수 있습니다:

import openai
import os
from typing import List, Dict
...

OpenAI에서 Global API로 전환할 때 로직을 단 한 줄도 바꾸지 않았다는 점에 주목하십시오. base_urlhttps://global-apis.com/v1로 지정하기만 하면 OpenAI Python SDK가 그대로 작동합니다. 이것이 이 생태계에서 과소평가된 부분입니다. 문자열 하나만 바꾸면 DeepSeek V4 Flash를 DeepSeek V4 Pro 또는 GLM-4 Plus와 A/B 테스트할 수 있습니다. 저는 실제로 첫 주에 그렇게 수행했으며, 벤더의 마케팅이 아닌 실제 품질 지표를 바탕으로 승자를 선택했습니다.

벡터 레이어(Vector Layer)를 처리하는 방법

Qdrant를 선택한 이유는 제가 혼자서 이 작업을 수행하고 있으며, 다른 모든 비용에 더해 관리형 벡터 DB (managed vector DB) 구독료까지 감당할 여력이 없었기 때문입니다. 전용 서버에서 50GB 저장 용량의 셀프 호스팅 (self-hosted) 인스턴스를 운영하는 데 월 12달러가 들며, Qdrant의 Rust 코어는 제가 별도로 튜닝하지 않아도 필요한 처리량 (throughput)을 처리해 줍니다. 약 200,000개의 문서 청크 (document chunks)를 보유한 물류 회사의 경우, 웜 캐시 (warm cache) 상태에서 50ms 미만의 검색 (retrieval) 속도를 얻고 있습니다.

하이브리드 검색 (hybrid search) 설정은 사람들이 생각하는 것보다 더 중요합니다. 저는 의미론적 일치 (semantic match)를 위해 Qwen3-32B 임베딩 (embeddings)을 통한 밀집 벡터 (dense vectors)를 사용하고, 송장 번호나 SKU 코드와 같은 정확한 용어를 위해 BM25를 병행합니다. 이 조합 덕분에 검색 정밀도 (retrieval precision)가 충분히 높아졌고, 컨텍스트 윈도우 (context window)를 최대로 키우지 않고도 DeepSeek V4 Flash가 정확하게 답변할 수 있었습니다. 더 작은 컨텍스트 윈도우는 더 적은 입력 토큰 (input tokens)을 의미하며, 이는 곧 더 낮은 비용으로 이어집니다. 일종의 플라이휠 (flywheel) 효과입니다.

내 워크로드에서 얻은 벤치마크 (Benchmarks)

벤더의 블로그가 사례 연구 (case study)에 올릴 법한 수치가 아니라, 제가 실제로 목격한 수치를 말씀드리겠습니다. 고객의 과거 지원 티켓에서 추출한 1,000개의 샘플 쿼리를 대상으로 한 결과입니다:

  • 평균 엔드 투 엔드 지연 시간 (end-to-end latency): 1.2초
  • 처리량 (Throughput): 생성 (generation) 측면에서 초당 320 토큰
  • 내부 평가 세트 (internal eval set)의 평균 벤치마크 점수: 84.6%
  • 월간 추론 비용 (inference cost): GPT-4o가 발생시켰을 510달러 대비 187달러

제가 중요하게 생각하는 수치는 84.6%입니다. 이는 제 답변이 인간 분야 전문가가 말했을 법한 내용과 일치하는 쿼리의 비율입니다. 제가 테스트했던 GPT-4o 베이스라인 (baseline)에서는 86.1%가 나왔습니다. 즉, 비용의 63%를 절감하기 위해 품질의 1.5%포인트를 포기한 것입니다. 시드 라운드 (seed round)조차 올리지 못한 스타트업에게 이는 고민할 가치도 없는 (no-brainer) 거래입니다. 저는 이 교체 작업을 "비용 최적화 마일스톤 (cost-optimization milestone)"으로 청구했고, 그들은 망설임 없이 지불했습니다.

값비싼 대가를 치르고 얻은 교훈

프로덕션 (production) 투입 6주 차에 접어들며, 제가 비싼 값을 치르고 배운 것들을 정리해 보았습니다. 여러분은 저와 같은 실수를 반복하지 않도록 이 내용을 기록해 둡니다:

공격적으로 캐싱(Cache)하세요. 생성 단계 앞에 쿼리(query)와 검색된 청크(retrieved chunks)의 해시(hash)를 키로 사용하는 Redis 레이어를 추가했습니다. 히트율(hit rate)은 약 40%로 안정되었습니다. 오타가 아닙니다. 들어오는 쿼리의 40%가 유료 추론(inference) 호출 대신 0달러의 캐시 조회로 처리되고 있습니다. 계산 결과는 여러분에게 압도적으로 유리합니다.

모든 것을 스트리밍(Stream)하세요. 응답 대기 방식(blocking responses)에서 스트리밍 방식으로 전환했을 때, 사용자가 체감하는 지연 시간(latency)이 절반으로 줄었습니다. 비용은 변하지 않지만, 데모가 두 배는 더 빠르게 느껴지게 만듭니다. 고객들은 이를 알아차립니다. 그들은 친구들에게 말하고, 그 친구들은 고객이 됩니다.

저렴한 쿼리에는 더 저렴한 모델을 사용하세요. Global API는 표준 모델보다 약 50% 저렴하게 실행되는 GA-Economy 티어를 제공합니다. 저는 단순한 FAQ 조회(예: "반품 정책이 어떻게 되나요?")처럼 보이는 모든 요청을 해당 티어로 라우팅(route)하고, 쿼리가 진정으로 복잡할 때만 DeepSeek V4 Flash로 격상시킵니다. 이를 통해 다른 모든 절감액에 더해 추가로 15%를 더 아꼈습니다.

비용뿐만 아니라 품질을 추적하세요. 클라이언트 UI에 간단한 따봉/역따봉(thumbs-up/thumbs-down) 위젯을 구축했습니다. 모든 역따봉(thumbs-down)은 전체 프롬프트(prompt) 및 응답과 함께 로그로 기록됩니다. 저는 이를 매주 검토합니다. 이러한 루프(loop)가 없었다면, 고객이 고객 만족도(CSAT) 점수가 떨어졌다고 말하기 전까지는 제 청킹(chunking) 전략이 표(tables) 데이터에서 깨지고 있다는 사실을 전혀 몰랐을 것입니다.

폴백(Fallback) 경로를 구축하세요. Global API의 속도 제한(rate limits)은 관대하지만 무한하지는 않습니다. 스프린트 도중 제한에 걸렸을 때, 제 서비스는 단순히 500 에러를 내뱉는 대신 "이 정보는 오래되었을 수 있습니다"라는 면책 조항과 함께 캐시된 응답으로 우아하게 성능을 낮추어(degrade gracefully) 대응했습니다. 고객은 전혀 눈치채지 못했습니다. 시스템이 다운되어 고객이 트위터(Twitter)를 통해 그 사실을 알게 되는 프리랜서가 되지 마세요.

이 스택이 적합하지 않은 경우

DeepSeek가 모든 문제에 대한 정답인 것처럼 가장하지는 않겠습니다. 제가 여전히 GPT-4o나 프로(Pro) 티어 모델 중 하나를 선택할 워크로드(workloads)도 있습니다:

  • 엄격한 구문 요구 사항이 있는 코드 생성 (Code generation). 만약 고객이 타입 안정성(type safety)이 보장된 프로덕션급 TypeScript를 필요로 한다면, 저는 GPT-4o의 프리미엄을 지불할 것입니다. 해당 벤치마크에서는 더 큰 모델들이 유리합니다.
  • 장문의 창의적 글쓰기 (Long-form creative writing). 마케팅 카피, 서사적 콘텐츠, 즉 원시적인 정확도보다 목소리의 일관성(voice consistency)이 더 중요한 모든 작업입니다. 출력 100만 토큰당 2.20달러인 DeepSeek V4 Pro는 괜찮은 절충안이지만, 정말 까다로운 작업이라면 저는 여전히 플래그십(flagship) 모델을 선택할 것입니다.
  • 감사 요구 사항이 있는 규제 산업. 만약 제 고객이 의료나 금융 분야에 있고, 벤더가 BAA(Business Associate Agreement)에 서명하거나 특정 컴플라이언스(compliance) 문서를 제공해야 한다면, 저는 성숙한 엔터프라이즈 서류 체계를 갖춘 제공업체에 묶여 있을 것입니다.

하지만 프리랜서 RAG 작업의 80% — 내부 도구, 고객 지원 강화, 문서 검색, 지식 베이스(knowledge bases) — 에 있어서는 DeepSeek V4 Flash와 Qdrant의 조합이 올바른 기본 설정입니다. 비용 절감 효과가 무시하기에는 너무 크며, 품질 또한 고객이 이에 대해 티켓(ticket)을 접수하지 않을 정도로 충분히 좋습니다.

아무도 믿지 않는 설정 시간 문제

마케팅 문구는 "통합 SDK를 사용하면 10분 미만"이라고 주장합니다. 저는 회의적이었습니다. 처음에는 47분이 걸렸지만, 여기에는 Qdrant 컨테이너 생성, Redis 연결, 임베딩 인제스션(embedding ingestion) 스크립트 작성이 포함되어 있었습니다. 대부분의 사람들이 걱정하는 부분인 실제 추론 계층(inference layer)은 .env 파일에 Global API 키를 넣고 나니 10분 만에 끝나는 작업이었습니다. 만약 여러분이 세 개의 서로 다른 중국 모델 벤더와 직접 결제 설정을 시도해 본 적이 있다면, 이것이 얼마나 많은 시간을 아껴주는지 알 것입니다. Global API는 인보이스(invoicing), 속도 제한(rate-limit) 조절, 모델 버전 교체 문제를 처리해 줍니다. 덕분에 저는 고객이 비용을 지불하는 본연의 업무에 집중할 수 있습니다.

나의 현재 마진 계산법

궁금해하실 분들을 위해 말씀드리자면: 이 프로젝트는 현재 월 약 $4,200의 리테이너 (Retainer) 수익을 창출하고 있습니다. 저의 인프라 비용은 추론 (Inference)에 $187, Qdrant 박스에 $12, Redis 호스팅에 $9, 그리고 기타 클라우드 비용으로 몇 달러가 소요됩니다. 이는 제 인건비를 제외하기 전 매출 총이익률 (Gross margin)이 95.6%에 달한다는 의미입니다. GPT-4o 버전을 사용했다면 86%였을 것입니다. 혼자서 사업을 운영할 때, 이 9%포인트의 차이는 여유로운 한 달과 스트레스 가득한 한 달을 가르는 차이입니다.

이 글을 읽고 있는 프리랜서로서, 여전히 모든 프로젝트에 가장 비싼 모델을 기본값으로 사용하고 있다면 — 이해합니다, 저도 수년간 똑같이 했습니다. 하지만 2026년의 가격 격차는 무시하기에는 너무나 큽니다. 출력 1M당 $1.10인 DeepSeek V4 Flash는 진정으로 훌륭합니다. Qwen3-32B 임베딩 (Embeddings) 또한 진정으로 훌륭합니다. "저렴한 중국 모델은 성능이 나쁘다"는 식의 생각은 수년 전의 이야기이며, 수치들이 이를 증명합니다.

다섯 개의 서로 다른 벤더 계정을 만들지 않고 이 스택을 직접 테스트해보고 싶다면, Global API를 살펴보는 것도 가치가 있습니다. 이들은 하나의 키 아래 184개의 모델을 통합하여 제공하며, SDK가 OpenAI와 호환되므로 기존 코드를 단 한 줄의 변경만으로 사용할 수 있고, 가격은 직접 결제할 때와 동일합니다. 저는 여러분에게 제안할 제휴 계약(Affiliate deal) 같은 건 없습니다 — 그저 두 프로젝트 전쯤에 누군가 저에게 이것을 알려줬더라면 좋았을 것 같다는 마음뿐입니다. 가입해서 무료 크레딧을 받고, 실제 워크로드 (Workload)에 대해 직접 벤치마크 (Benchmark)를 실행해 보세요. 수치가 스스로 증명할 것입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0