서버리스 OpenAI 게이트웨이를 구축하여 비용을 30% 절감하고 PII를 정제했습니다 (오픈 소스)

발행: (2026년 1월 31일 오전 10:14 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

LLM 래퍼나 내부 도구를 구축하고 있다면, 마진(그리고 수면)을 갉아먹는 두 가지 현상을 눈치챘을 것입니다:

  • 중복 API 비용 – 사용자가 같은 질문을 반복해서 묻고, 동일한 토큰에 대해 OpenAI에 계속 비용을 지불하게 됩니다.
  • 컴플라이언스 불안 – 사용자가 챗봇에 고객의 이름, 이메일, 세금 ID 등을 붙여넣으면, 해당 데이터가 제3자 서버(OpenAI, DeepSeek 등)로 전송됩니다.

대부분의 기존 솔루션은 무거운 엔터프라이즈 게이트웨이(Java/Docker)이거나 비용이 많이 드는 SaaS 제품입니다. 저는 Cloudflare Workers를 이용해 Edge에서 완전히 실행되는 가볍고 서버리스인 대안을 만들기로 했습니다.

솔루션 개요

Sanitiza.AI는 요청을 캐시하고 PII를 정제하여 네트워크를 떠나기 전에 제거하는 오픈소스 게이트웨이입니다. 목표는 DevOps 제로: Docker 컨테이너도, Redis 인스턴스도 없이 순수 서버리스 함수만 사용합니다.

런타임 및 스택

구분선택
런타임Cloudflare Workers (TypeScript)
프레임워크Hono (경량 웹 프레임워크, Express와 유사)
스토리지Cloudflare KV (캐싱용 키‑값 저장소)
해싱Native Web Crypto API (SHA‑256)

스마트 캐시 (RAG 앱용)

Retrieval‑Augmented Generation(RAG) 워크로드에서는 중복이 크게 발생합니다. 게이트웨이는 요청 본문(프롬프트 + 시스템 지시문)의 SHA‑256 해시를 생성하고 이를 캐시 키로 사용합니다.

// Generate a unique fingerprint for the request
async function generateHash(message: string): Promise {
  const msgBuffer = new TextEncoder().encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  const hashArray = Array.from(new Uint8Array(hashBuffer));
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

캐시 흐름

결과동작비용
히트저장된 JSON을 즉시 반환 ( Live calculator: 저장소에서 작동 데모 확인)

엣지에서의 성능

지표
콜드 스타트~0 ms (실질적으로 즉시)
캐시 응답 시간

OpenAI, DeepSeek, Groq 및 기타 호환 API와 모두 동작합니다.

기여

시맨틱 캐시(Cloudflare Vectorize 활용)를 구현하여 유사하지만 동일하지 않은 프롬프트도 잡아낼 수 있는 기여자를 찾고 있습니다. Rust/WASM이나 벡터 데이터베이스 경험이 있다면 이야기해요!

프로젝트가 유용하다면 ⭐ 저장소에 별표를 눌러 주세요—큰 도움이 됩니다!

Back to Blog

관련 글

더 보기 »