OpenRouter ZDR 완벽 정리: AI 서비스 출시 전 꼭 확인해야 할 프롬프트 데이터 보안
OpenRouter를 쓰다 보면 한 번쯤 이런 생각이 듭니다. "내가 보낸 프롬프트, 지금 어느 회사 서버에 남아 있는 거지?"
이게 막연한 불안이 아니라는 걸 보여준 사건이 이미 있었습니다. 2025년 4월 개인정보보호위원회는 딥시크(DeepSeek)에 대한 실태점검 결과를 발표했습니다. 이용자가 입력한 프롬프트가 고지 없이 중국·미국 소재 5개 기업으로 넘어갔는데 학습에 쓰이면서도 거부 수단이 없었다는 게 핵심이었습니다. 개인정보위는 이전된 데이터의 즉각 파기를 권고했습니다. "프롬프트가 어디로 가서 어떻게 쓰이는가"라는 물음이 국내에서 실제 제재로 이어진 건 이때가 사실상 처음입니다.
규제 쪽 움직임도 빨라졌습니다. 개인정보위는 2025년 8월 「생성형 AI 개발·활용을 위한 개인정보 처리 안내서」를 내놨습니다. 서비스형 LLM을 쓰면서 개인정보가 국외 서버로 넘어가는데 처리방침에 국외이전 고지가 빠져 있으면 개인정보보호법 제28조의8의 적법 근거를 갖추지 못한 것이 됩니다. 2026년부터는 AI 기본법 시행까지 겹쳤습니다. LLM API 호출 한 번이 국외이전에 해당할 수 있는 시대에, 내 요청이 어느 나라 어느 업체 서버로 라우팅되는지는 이제 편의의 문제가 아닙니다. 컴플라이언스 문제죠.
그런 관점에서 OpenRouter는 흥미로운 대상입니다. 하나의 API로 수백 개 모델을 쓸 수 있게 해주는 라우터인데, 편한 만큼 구조가 복잡합니다. 내 요청은 OpenRouter를 거쳐 OpenAI, Anthropic, Google, 혹은 이름도 처음 듣는 오픈소스 호스팅 업체로 흘러갑니다. 그 업체들의 데이터 정책은 제각각이고요. 어떤 곳은 30일 보관하고, 어떤 곳은 학습에 쓰고, 어떤 곳은 아예 저장하지 않습니다.
ZDR이 뭔지부터 차근차근 보겠습니다.
ZDR이 뭔가요
ZDR은 Zero Data Retention, 말 그대로 "프로바이더가 내 데이터를 어떤 기간에도 저장하지 않는다"는 정책입니다. ZDR을 켜면 OpenRouter는 프롬프트와 응답을 저장하지 않고 학습에도 쓰지 않는 것으로 확인된 엔드포인트로만 요청을 라우팅합니다. ZDR 정책을 가진 프로바이더는 정의상 데이터를 학습에 쓸 수도 없습니다. 저장을 안 하니까요.
한 가지 중요한 전제가 있습니다. OpenRouter 자체는 기본적으로 프롬프트를 저장하지 않습니다. 사용자가 로깅을 직접 켜지 않는 한요. 그러니까 ZDR은 OpenRouter가 내 데이터를 지켜준다는 얘기가 아닙니다. OpenRouter 너머에 있는 프로바이더까지 통제한다는 얘기죠.
어떤 엔드포인트가 ZDR인지는 API로 실시간 확인할 수 있습니다. 인증 없이 호출 가능합니다.
GET https://openrouter.ai/api/v1/endpoints/zdr응답은 이런 형태입니다. (실제 응답에서 항목 하나만 발췌)
{
"data": [
{
"name": "Amazon Bedrock | anthropic/claude-4-sonnet-20250522",
"model_id": "anthropic/claude-4-sonnet",
"provider_name": "Amazon Bedrock",
"context_length": 1000000,
"pricing": { "prompt": "0.000003", "completion": "0.000015" },
"quantization": "unknown",
"supported_parameters": ["tools", "tool_choice", "max_tokens", "temperature", "..."],
"uptime_last_30m": 100,
"supports_implicit_caching": false
}
]
}
엔드포인트별로 모델 ID, 프로바이더, 가격, 컨텍스트 길이, 지원 파라미터, 최근 가동률(uptime)까지 내려옵니다. ZDR 조건에 맞는 모델을 고를 때 그대로 갖다 쓰면 됩니다. 2026년 8월 기준으로, 목록에는 700개가 넘는 엔드포인트가 올라와 있습니다. DeepInfra, Google(Vertex), Novita, Azure, Amazon Bedrock 같은 프로바이더가 상위를 차지합니다. Claude나 GPT 계열도 1st-party API 대신 Bedrock, Vertex, Azure 경유 엔드포인트가 ZDR로 분류된 경우가 많습니다.
누구의 정책을 따르는가? 서빙 주체 기준으로 보기
ZDR은 모델이 아니라 엔드포인트 단위로 판정됩니다. 같은 모델이라도 누가 서빙하느냐에 따라 적용되는 데이터 정책이 완전히 달라지거든요. 크게 세 가지 경우로 나뉩니다.
케이스 1은 모델 개발사가 직접 서빙하는 경우입니다. OpenAI API, Anthropic API 같은 1st-party 엔드포인트는 그 개발사의 데이터 정책을 따릅니다. 개발사 기본 API는 남용 감지 목적으로 일정 기간 데이터를 보관하는 일이 많습니다. 그래서 별도 ZDR 계약 없이는 ZDR로 분류되지 않는 경우가 흔합니다.
케이스 2로 넘어가면 얘기가 달라집니다. Bedrock의 Claude, Azure의 GPT, Vertex의 Claude·Gemini처럼 폐쇄형 모델을 클라우드 플랫폼이 재서빙하는 경우죠. 이때 적용되는 건 모델 개발사가 아니라 그 클라우드 플랫폼의 데이터 정책입니다. 앞서 Claude·GPT가 1st-party 대신 Bedrock·Azure 경유로 ZDR 목록에 올라 있던 것도 그래서입니다. 같은 Claude라도 어느 문으로 들어가느냐에 따라 ZDR이 되기도 하고 안 되기도 합니다.
마지막은 케이스 3입니다. DeepSeek, Llama, Qwen 같은 오픈웨이트 모델을 DeepInfra·Novita·Together 등 제3의 업체가 서빙하는 엔드포인트라면 정책은 전적으로 배포(서빙) 업체가 정합니다. 모델 개발사는 이 요청 데이터를 아예 받아보지 못합니다. 그래서 "중국 모델이라 데이터가 중국으로 간다" 같은 걱정이 맞는지도 서빙 주체가 어디냐에 달렸습니다. 미국·유럽 호스팅사가 서빙하는 오픈웨이트 엔드포인트라면 개발사 국적과 데이터 흐름은 별개입니다. 반대로 같은 오픈웨이트 모델이라도 어떤 호스팅사는 프롬프트를 로깅하고 어떤 곳은 ZDR이죠. 결국 어느 프로바이더를 고르느냐가 프라이버시를 정합니다.
이 원칙만 잡고 있으면 판단하기 쉬워집니다. 물어야 할 건 "이 모델 써도 되나?"가 아니라 "이 엔드포인트 써도 되나?"입니다. 특정 서빙 업체를 고정하고 싶다면 provider.only나 order 파라미터로 못 박으면 됩니다.
사용자가 조절할 수 있는 옵션들
1. 계정 설정 (openrouter.ai/settings/privacy)
프라이버시 설정 페이지에는 다섯 가지 토글이 있습니다.
설정 | 의미 |
|---|---|
유료 엔드포인트 학습 허용 | 입력을 학습에 쓸 수 있는 유료 프로바이더로 라우팅 허용 |
무료 엔드포인트 학습 허용 | 입력을 학습에 쓸 수 있는 무료 프로바이더로 라우팅 허용 |
무료 엔드포인트 프롬프트 공개 허용 | 프롬프트를 공개(publish)할 수 있는 무료 프로바이더 허용 |
1% 할인 | 로깅에 동의하는 대신 전 모델 1% 할인 |
ZDR 전용 | 모든 요청을 ZDR 엔드포인트로만 제한 |
ZDR은 전역으로 켤 수도 있고, 모델 그룹별로도 켤 수 있습니다. Anthropic, OpenAI, Google, xAI, 그리고 비프론티어(non-frontier) 프로바이더 다섯 그룹을 따로 설정할 수 있어서 "빅테크 1st-party API는 그대로 두고, 오픈소스 호스팅 업체만 ZDR 강제" 같은 세팅이 가능합니다.
2. 요청 단위 파라미터
API 호출의 provider 객체에서 요청마다 제어할 수 있습니다.
{
"model": "anthropic/claude-sonnet-5",
"messages": [...],
"provider": {
"zdr": true,
"data_collection": "deny"
}
}
zdr: true— 이 요청은 ZDR 엔드포인트로만 라우팅data_collection: "deny"— 프롬프트를 수집(로깅·학습)하는 프로바이더 전부 제외. ZDR보다 넓게 걸러냅니다.only/ignore/order— 특정 프로바이더를 직접 지정하거나 배제
zdr: true는 계정 설정과 OR로 결합됩니다. 계정에서 꺼져 있어도 요청에서 켜면 적용됩니다. 반대로 계정에서 켜져 있으면 요청 단위로 끌 수는 없습니다.
3. 정책 적용 레벨
정책은 개인 계정, 조직(organization), 개별 API 키 세 레벨에서 설정할 수 있습니다. 이 중 가장 엄격한 설정이 적용됩니다. 조직 관리자가 ZDR을 강제하면 팀원이 개인 설정으로 풀 수 없습니다.
4. 리전 제어
엔터프라이즈 고객은 Base URL을 https://eu.openrouter.ai로 바꿔 EU 역내에서만 처리되는 인리전 라우팅을 쓸 수 있습니다.
ZDR 켜기 전에 알아야 할 것들
ZDR은 스위치 하나로 끝나는 얘기가 아닙니다.
자기신고 기반이라는 한계
OpenRouter는 프로바이더가 실제로 ZDR을 지키는지 기술적으로 검증하지 않습니다. 프로바이더의 공개 정책과 약관을 근거로 분류할 뿐입니다. 대신 보수적으로 운영합니다. 정책이 불명확한 엔드포인트는 "저장하고 학습한다"로 간주해 ZDR 대상에서 제외하거든요. 결국 최종 신뢰의 대상은 OpenRouter가 아니라 각 프로바이더의 약관입니다.
라우팅 풀이 줄어듭니다
ZDR을 켜면 갈 수 있는 엔드포인트가 확 줄어듭니다. 모델에 따라 ZDR 엔드포인트가 하나도 없을 수 있습니다. 그러면 요청은 이런 에러로 실패합니다.
프로덕션에서 ZDR을 강제한다면, 쓰려는 모델에 ZDR 엔드포인트가 실제로 존재하는지 미리 확인해야 합니다. 위에서 소개한 ZDR 엔드포인트 목록 API를 그때 쓰면 되고요. 목록은 프로바이더 정책 변경에 따라 수시로 바뀌므로, 특정 시점의 스크린샷을 믿지 말고 API로 확인하는 습관이 필요합니다.
무료 모델은 사실상 포기해야 합니다
:free 붙은 무료 엔드포인트는 대부분 프롬프트를 학습에 쓰거나 심지어 공개할 수 있다는 조건으로 제공됩니다. 공짜인 대신 데이터를 내주는 거죠. 그래서 학습 허용 토글을 끄면 무료 모델이 전부 404를 뱉습니다. 프라이버시 설정을 조이면서 무료 모델도 쓰겠다는 건 애초에 성립하지 않습니다.
1% 할인의 정체
설정에 있는 "1% 할인"은 공짜가 아닙니다. 내 프롬프트 로깅에 동의해야 받습니다. 할인 폭이 작아 보여도 대량 트래픽이면 무시 못 할 금액이라 무심코 켜기 쉬운데, 이걸 켜는 순간 OpenRouter가 기본적으로 프롬프트를 저장하지 않는다는 전제가 더는 성립하지 않습니다. 프라이버시가 중요하다면 꺼두세요.
캐싱은 retention이 아닙니다
OpenRouter는 데이터센터 내부의 인메모리 프롬프트 캐싱을 저장으로 치지 않습니다. ZDR 엔드포인트도 캐싱은 할 수 있다는 뜻입니다. 성능 관점에선 다행이지만 "내 데이터가 단 1초도 어디에도 남지 않는다"는 극단적 해석과는 다르다는 걸 알아둘 필요가 있습니다.
서드파티 플러그인은 별개입니다
ZDR은 추론 요청의 프로바이더 라우팅에만 적용됩니다. 웹서치 같은 플러그인이나 툴은 자체 데이터 보존 정책을 따르므로 ZDR 켜고 웹서치를 쓰면 검색 쿼리는 ZDR이 보장해주지 않습니다.
ZDR은 컴플라이언스 인증이 아닙니다
HIPAA, 의료·금융 규제 같은 걸 다룬다면 ZDR 라우팅만으로는 부족합니다. ZDR은 라우팅 필터이지 법적 계약(BAA, DPA)이 아닙니다. 규제 대상 데이터라면 프로바이더와의 직접 계약이나 OpenRouter 엔터프라이즈 플랜을 별도로 검토해야 합니다.
OpenRouter 자체에 남는 것
프롬프트는 저장하지 않지만 과금과 남용 감지를 위한 요청 메타데이터(토큰 수, 사용 모델 등)는 남습니다. 이미지·오디오·비디오 파일은 라우팅에 필요한 기간만 유지되고 남용 감지·보안·과금·법적 준수 목적의 예외가 있습니다.
정리
민감한 데이터를 다룬다면 추천하는 세팅은 이렇습니다.
계정 설정에서 유료·무료 학습 허용 토글 모두 끄기
1% 할인 끄기 (켜져 있다면)
ZDR 전역 또는 모델 그룹별로 켜기
코드에서도
provider: { zdr: true }명시 (설정 실수에 대비한 이중 안전장치)배포 전 ZDR 엔드포인트 목록 API로 쓰려는 모델의 가용성 확인
보장 강도로 줄 세우면 이렇습니다. ZDR(저장 자체를 안 함) > data_collection: deny(수집하는 곳 제외) > 학습 opt-out(저장은 할 수 있지만 학습은 안 함). 뒤로 갈수록 느슨해지는 대신, 쓸 수 있는 모델 풀이 넓어집니다. 자기 데이터의 민감도에 맞는 지점을 고르면 됩니다.
다만 이 글은 OpenRouter가 어떤 옵션을 주는지까지만 다뤘습니다. 국내 개인정보 보호법과 자사 개인정보처리방침을 지키면서 요구 성능(지연·처리량·비용)까지 맞춘 개인정보처리·ZDR 라우팅 전략 설계가 필요하시다면 렛서 AI Gateway에 문의해 주세요.