9Router란? 계정을 라우팅하기 전에 게이트웨이를 이해하세요
9Router는 Claude Code, Codex, Cursor와 여러 모델 프로바이더 사이에 로컬 게이트웨이를 둡니다. 명령 두 줄로 시작하는 일은 가장 중요하지 않습니다. 진짜 질문은 요청이 프로바이더를 어떻게 바꾸는지, 자격 증명이 어디에 저장되는지, 어떤 연결 모드가 업스트림 계정 통제를 유발할 수 있는지입니다.
짧은 판단
9Router는 연구할 가치는 있지만, 주력 업무 계정과 회사 비공개 코드를 첫 테스트 데이터로 쓰지 마세요.
가장 강한 기능은 AI 코딩 클라이언트, 프로바이더 프로토콜, 업스트림 계정을 로컬 엔드포인트 하나로 모으는 것입니다. 가장 큰 보안 결과는, 같은 엔드포인트가 전체 프롬프트, API 키, OAuth 리프레시 토큰, 모든 폴백 결정을 볼 수 있다는 점입니다.
| 시나리오 | 판단 |
|---|---|
| 합법적으로 얻은 저권한 API 키 여러 개를 시험 | 적합 |
| 개인 샌드박스에서 프로토콜 변환과 폴백을 평가 | 적합 |
| 주력 Claude, Codex, Google 구독 계정을 풀링 | 리스크 높음. 먼저 업스트림 규칙을 확인하세요 |
| 회사 비밀, 고객 데이터, 규제 대상 데이터를 처리 | 실제 보안 검토 없이 도입하지 마세요 |
| 모든 요청이 한 모델과 한 데이터 처리자에 머물러야 함 | 프로바이더 간 폴백을 켜지 마세요 |
이 페이지는 2026년 7월 20일에 확인했습니다. 9Router는 빨리 바뀌므로, 프로바이더 가용성, 무료 한도, 모델 이름은 현재 README와 릴리스를 기준으로 확인하세요.
9Router가 실제로 무엇인가
9Router는 직접 호스팅하는 LLM 게이트웨이입니다. Claude Code, Codex, Cursor, Cline, OpenCode 같은 클라이언트는 한 모델 회사를 직접 호출하는 대신, 호환되는 로컬 엔드포인트를 호출합니다. 게이트웨이는 요청한 모델을 해석하고, 자격 증명을 고르고, 형식을 변환하고, 업스트림 요청을 실행한 뒤, 응답을 다시 변환합니다.
모델이 아니며, Claude Code를 대체하는 채팅 UI도 아닙니다. 더 정확한 설명은 AI 코딩 도구용 로컬 리버스 프록시, 프로토콜 어댑터, 라우팅 컨트롤 플레인입니다.
해결하는 네 가지 문제
1. 여러 코딩 클라이언트를 위한 엔드포인트 하나
Claude Code, Codex, Cursor와 다른 도구는 환경 변수, 설정 파일, 요청 형식이 다릅니다. 프로바이더를 손으로 바꾸면 서로를 덮어쓰는 오래된 설정이 남을 수 있습니다. 9Router는 그 클라이언트에 Base URL 하나를 주고, 프로바이더 상태를 대시보드로 옮깁니다.
이는 CC Switch와 다릅니다. CC Switch는 주로 클라이언트 설정을 관리합니다. 9Router는 실제 요청 경로에 앉아 페이로드를 읽고, 변환하고, 전달할 수 있습니다.
2. 호환되지 않는 프로토콜 사이의 변환
OpenAI Chat, Responses, Anthropic Messages, Gemini, 여러 코딩 프로바이더는 하나의 전송 형식을 공유하지 않습니다. 9Router는 도구 호출, 추론 내용, 이미지, SSE 스트림을 대상 프로바이더 형식으로 변환합니다.
변환은 유용하지만 실패 모드도 더합니다. 한 줄 채팅 테스트가 성공해도, 긴 컨텍스트, 병렬 도구, 추론 필드, 취소, 스트리밍이 모두 브리지를 통과한다고 증명되지는 않습니다.
3. 계정 로테이션과 모델 폴백
9Router는 한 프로바이더의 여러 계정을 돌릴 수 있고, 순서가 있는 모델 콤보를 정의할 수 있습니다. 계정이나 모델이 폴백 대상인 할당량 오류나 요청 오류를 반환하면, 게이트웨이는 다음으로 설정한 경로를 시도할 수 있습니다.
이를 의미 기반 작업 라우팅과 혼동하지 마세요. 지금 추론 작업에는 Gemini가 가장 좋고, 다음 코드 수정에는 Claude가 가장 좋다고 안정적으로 추론하지는 않습니다. 핵심 메커니즘은 여전히 설정한 순서, 계정 상태, 오류 휴리스틱입니다.
4. 도구 출력이 모델에 닿기 전에 압축
RTK Token Saver는 git diff, grep, ls, tree, 로그 같은 도구 결과를 인식한 뒤 입력 토큰을 줄이려 합니다. 반복 출력과 너무 큰 디렉터리 목록에는 도움이 될 수 있지만, 완전 무손실은 아닙니다.
smart-truncate의 소스 구현은 앞과 뒤를 남기고, 가운데 줄을 ... +N lines truncated로 바꿉니다. 장애 디버깅, diff 검토, 간헐적 테스트 분석에서는 빠진 가운데에 필요한 증거가 있을 수 있습니다.
정확한 컨텍스트가 중요하면 RTK를 끄거나, 문서화된 헤더로 한 요청의 모든 토큰 세이버를 우회하세요.
X-9Router-Token-Saver: off
“무제한 무료 AI”의 실제 의미
9Router는 토큰을 팔거나 모델 추론 비용을 대지 않습니다. 업스트림 프로바이더가 요청을 실행하며, 사용량은 구독, API 키, 체험 크레딧, 프로모션 무료 한도에 따릅니다.
현재 README는 초기 튜토리얼 여러 개를 이미 고쳤습니다. iFlow, Qwen Code, Gemini CLI 무료 한도는 2026년에 중단되었고, Kiro에는 월간 상한이 있으며, OpenCode Free 모델 목록은 바뀌고, Vertex는 대상이 되는 신규 Google Cloud 계정에 기간 한정 크레딧을 씁니다.
마케팅 주장을 더 정확히 읽으면 이렇습니다.
| 주장 | 실제 경계 |
|---|---|
| 무료 AI 라우터 | 소프트웨어는 무료 오픈소스입니다. 업스트림 추론은 무료가 아닐 수 있습니다 |
| 한도에 걸리지 않음 | 폴백은 중단을 줄일 수 있지만, 할당량을 만들거나 업스트림 가용성을 보장하지는 않습니다 |
| 프로바이더 40개 이상 | 어댑터 목록이 길다고 모든 경로가 안정적이고, 허용되며, 완전히 호환된다는 뜻은 아닙니다 |
| 토큰 20-40% 절약 | 프로젝트의 추정입니다. 절감은 출력 형태에 따라 다르고, 내용을 제거할 수 있습니다 |
가이드가 여전히 iFlow, Qwen, Antigravity를 “무제한 무료”로 권하면, 프로바이더 설정을 따르기 전에 게시일을 확인하세요.
9Router vs CLIProxyAPI vs CC Switch
| 도구 | 가까운 형태 | 가장 잘 맞는 용도 | 주요 트레이드오프 |
|---|---|---|---|
| 9Router | 대시보드 중심 로컬 LLM 게이트웨이 | 개인 프로바이더 관리, 할당량 보기, 폴백, 클라이언트 엔드포인트 하나 | 전체 요청 경로 안의 큰 상태와 보안 면 |
| CLIProxyAPI | 더 낮은 계층의 계정-to-API 서비스 | 직접 호스팅하는 계정 풀과 NewAPI 또는 내부 서비스용 호환 업스트림 | 최종 사용자 워크스테이션보다 배포 지향 |
| CC Switch | 클라이언트 설정 관리 도구 | Base URL, 키, MCP, 프롬프트, CLI 프로필 전환 | 업스트림 프로토콜을 고치거나 모델 폴백을 실행하지 않음 |
한 프로젝트가 다른 프로젝트를 베꼈다는 포럼 주장은 선택 근거로 믿을 수 없습니다. 검증할 수 있는 질문이 더 유용합니다. 어떤 구성 요소가 자격 증명을 저장하는지, 어떤 구성 요소가 요청을 바꾸는지, 누가 폴백을 결정하는지, 장애를 얼마나 쉽게 분리할 수 있는지입니다.
세 가지 연결 모드는 리스크가 다릅니다
API 키: 가장 분명한 경계
프로바이더가 API 키 접근을 명시적으로 지원하고, 모델, 청구, 사용 사례가 문서와 맞으면, 9Router는 대체로 호환 게이트웨이로 동작합니다. 키는 보호해야 하지만, 인가 경계는 소비자 구독 세션보다 판단하기 쉽습니다.
OAuth와 구독: 업스트림 약관을 확인하세요
OAuth 로그인이 끝났다는 것은 인증이 성공했다는 뜻일 뿐입니다. 프로바이더가 구독 혜택을 다른 클라이언트로 중계하거나, 팀과 공유하거나, 자동 계정 풀에 넣는 것을 허용한다는 증명은 아닙니다. 계정이 여러 개여도 리스크 통제가 사라지지는 않습니다. 트래픽이 다른 신원으로 이어질 뿐입니다.
공개 이슈에는 403 응답, API 차단, 토큰 취소, Antigravity 제한이 있습니다. 모든 계정이 정지된다는 증거는 아니지만, “OAuth가 되니 안전하다”는 일괄 주장을 거절하기에는 충분합니다.
MITM: 리스크가 가장 높은 경로
9Router는 일반 Base URL로 방향을 바꿀 수 없는 클라이언트나 IDE를 위한 MITM 모드도 지원합니다. 이 모드에는 로컬 루트 인증서, DNS나 hosts 변경, 트래픽 가로채기, 클라이언트 지문 흉내가 포함될 수 있습니다.
Claude Code, Codex, 또는 다른 OpenAI 호환 클라이언트가 이미 사용자 지정 엔드포인트를 받는다면, 작은 설정 변경을 피하려고 MITM을 켜지 마세요.
로컬이라고 데이터가 로컬에 머무는 것은 아닙니다
“로컬 게이트웨이”는 게이트웨이 프로세스가 기기에서 실행된다는 뜻입니다. 프롬프트, 소스 조각, 도구 결과, 첨부 파일은 선택한 업스트림 프로바이더로 갑니다. 프로바이더 간 폴백에서는 한 코딩 작업 중에 데이터 처리자가 바뀔 수 있습니다.
현재 소스는 accessToken, refreshToken, apiKey를 포함한 프로바이더 연결 필드를 로컬 SQLite 데이터베이스에 직렬화합니다. 그 저장 경로에 암호화 계층은 보이지 않으므로, ~/.9router는 버려도 되는 캐시가 아니라 자격 증명 디렉터리로 봐야 합니다.
더 안전한 첫 실행 기준
공식 CLI는 현재 기본으로 0.0.0.0에 바인딩합니다. 프로젝트에는 원격 API, 대시보드, 민감한 로컬 경로용 인증 게이트가 있지만, 개인 워크스테이션이 기본으로 리스너를 LAN에 열 필요는 없습니다.
권한이 낮은 별도 계정이나 한도가 낮은 키를 쓰고, 루프백에만 바인딩하세요.
OBSERVABILITY_ENABLED=false 9router --host 127.0.0.1 --skip-update
설치 안내가 아닙니다. 보수적인 첫 실행 기준입니다. 실제 코드를 보내기 전에 다음도 확인하세요.
- 대시보드에 고유하고 강한 비밀번호가 있습니다.
- Cloud Sync, Cloudflare Tunnel, Tailscale, MITM은 명시적으로 필요하지 않으면 꺼 둡니다.
~/.9router주변의 권한, 백업, 동기화 소프트웨어가 자격 증명에 맞습니다.- RTK는 끈 상태로 시작해, 비교가 원본 컨텍스트를 쓰게 합니다.
- 첫 콤보에는 프로바이더 하나만 넣습니다. 프로토콜 시험을 통과한 뒤에 폴백을 추가하세요.
- 스트리밍, 도구 호출, 토큰 기록을 최소 요청이나 API 중계 검사 도구로 확인했습니다.
최종 판단: 써야 하나요?
멀티 모델 라우팅을 연구하거나, 합법적으로 얻은 API 키를 모으거나, 개인 샌드박스에서 폴백 동작을 보고 싶다면, 9Router는 환경 변수 묶음보다 더 완전한 컨트롤 플레인을 제공합니다.
진짜 목표가 “업스트림 규칙은 신경 쓰지 않고 무료 Claude나 Codex를 쓰는 것”이라면, 그것이 도입하는 가장 위험한 이유입니다. 무료 한도는 바뀌고, 클라이언트 지문은 바뀌며, OAuth 권한은 더 조여질 수 있습니다. 계정 로테이션이 불안정한 경로를 서비스 수준 약정으로 바꾸지는 못합니다.
9Router를 무제한 할당량 기계가 아니라 실험용 게이트웨이로 보세요. 실제 프로젝트를 통과시킬지 정하기 전에 리스너, 자격 증명, 로그를 먼저 제한하세요.