BYOK 디자인 워크플로: 자신의 키로 Claude, Codex, Qwen 실행하기
대부분의 AI 디자인 도구는 여러분이 쓰는 모든 토큰에 슬그머니 마진을 붙입니다. Open Design은 정반대 입장을 취합니다 — 자신의 모델 키를 가져와 공급자에게 직접 결제하고, 추론이 어디에서 실행되는지에 대한 통제권을 온전히 유지하세요. BYOK 레이어가 실제로 어떻게 작동하는지 살펴봅니다.
2026년에 호스팅형 AI 디자인 제품을 써봤다면, 청구서가 슬금슬금 올라가는 것을 아마 눈치챘을 것입니다. 좌석당 요금 위에 구독료가 얹히고, 그 위에 아무도 공개하지 않는 추론 마진이 또 한 겹 쌓입니다. 그 계산은 일부러 불투명하게 만들어진 것입니다.
Open Design은 추론을 실행하지 않습니다. 우리는 토큰에 마진을 붙이지 않습니다. 전체 워크플로는 자신의 키 가져오기(BYOK)를 중심으로 설계되어 있습니다 — daemon을 OpenAI 호환 엔드포인트 어디로든 가리키고, 자신의 API 키를 붙여넣으면 끝입니다.
이 글에서는 우리가 왜 그런 선택을 했는지, 내부에서 어떻게 작동하는지, 그리고 그것이 일상 워크플로에서 실제로 무엇을 바꾸는지 설명합니다. 그 뒤에 깔린 더 큰 철학적 논의가 궁금하다면, 우리가 Open Design을 제품이 아닌 스킬 레이어로 만든 이유가 짝이 되는 글입니다 — 이 글은 직접 손으로 해보는 버전입니다.
여기서 “BYOK”가 정말로 의미하는 것
AI 도구 업계에는 BYOK에 대한 두 가지 정의가 떠돌고 있는데, 둘은 같은 것이 아닙니다:
- 표면적 BYOK — 도구가 키를 붙여넣게 해주지만, 추론은 여전히 자기네 서버를 거쳐 라우팅하고, 여러분의 프롬프트를 로그에 남기며, 속도 제한을 적용할 수 있습니다.
- 진짜 BYOK — 도구가 여러분의 머신(또는 인프라)에서 모델 공급자를 직접 호출합니다. 여러분의 프롬프트는 결코 벤더의 서버에 닿지 않습니다. 벤더는 마진을 가져가지 않습니다.
Open Design은 두 번째 종류입니다. daemon은 여러분이 구성한 엔드포인트로, 여러분의 키로, 여러분의 머신에서 HTTP 호출을 합니다. 우리는 프록시하지 않습니다. 우리는 로그를 남기지 않습니다. 우리는 여러분의 프롬프트를 보지 않습니다.
호출이 실제로 가는 곳
daemon이 작업을 집어 들면, 프롬프트를 구성합니다 — 그 작업에 해당하는 SKILL.md와 DESIGN.md 파일을 끌어옵니다 — 그런 다음 여러분이 설정한 base URL로 단 한 번의 HTTP 요청을 보냅니다. 응답은 여러분의 머신으로 스트리밍되어 돌아오고, 에이전트는 산출물을 디스크에 기록합니다. 그것이 루프의 전부입니다. 경로 안에 Open Design 서버는 없습니다. 여러분의 스킬을 발견하는 그 동일한 daemon이 네트워크 호출도 소유합니다. 그렇기 때문에 “이건 어디에서 실행되나요?”가 영업 대화가 아니라 하나의 설정이 됩니다.
OpenAI 호환 어댑터
2026년 대부분의 AI 추론 엔드포인트는 OpenAI Chat Completions API를 말합니다. 우리는 그것을 최소공통분모 프로토콜로 사용합니다. 여러분의 공급자가 그것을 말한다면(거의 모두가 그렇습니다), 기본으로 지원됩니다 — 플러그인도, 기다려야 할 공급자별 통합도 없습니다.
가리킬 수 있는 공급자들
| 공급자 | 일반적인 base URL 형태 | 적합한 용도 |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | gpt-image-2, gpt-5.x, 가장 강력한 범용 패스 |
| Anthropic | OpenAI 호환 shim, 또는 전용 Claude 어댑터 | 취향이 중요한 정교화, 긴 브리프 |
| DeepSeek | https://api.deepseek.com/v1 | 비용 효율적인 롱컨텍스트 초안 작성 |
| Groq | 공급자 base URL | 저지연 초안 사이클 |
| OpenRouter | https://openrouter.ai/api/v1 | 모든 프런티어 모델, 하나의 청구 관계 |
| 자체 호스팅 vLLM / TGI / Ollama | 여러분 자신의 호스트, 예: http://localhost:11434/v1 | 완전 로컬, 고객 기밀 작업 |
| Qwen / Kimi / Hermes | 공급자 base URL | OAI 호환 엔드포인트를 갖춘 지역 모델 |
이 목록은 하드코딩된 허용 목록이 아닙니다 — 그저 사람들이 흔히 자리 잡는 곳일 뿐입니다. Chat Completions 형태에 응답하는 것이라면 무엇이든 작동합니다.
두 개의 필드, 그다음 재시작
구성은 두 개의 필드입니다:
OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_API_KEY=sk-…
그것을 .env.local에 넣고, daemon을 재시작하면, 다른 모델로 전환됩니다. 민감한 프로젝트를 위해 로컬 Ollama 박스로 전환하는 것도 똑같은 두 줄입니다:
OPENAI_BASE_URL=http://localhost:11434/v1
OPENAI_API_KEY=ollama
업데이트할 모델 레지스트리도, 다시 연결할 계정도, 마이그레이션도 없습니다. 키와 엔드포인트가 표면의 전부입니다.
이것이 디자인 작업에 중요한 이유
디자인 워크플로에는 호스팅형 추론 제품이 잘 다루지 못하는 특유의 비용 구조가 있습니다:
- 반복이 작업의 단위입니다. 진짜 디자인 패스는 세 번이 아니라 30~50회의 프롬프트 사이클을 의미합니다. 호스팅 플랜은 50사이클 지점에서 강하게 속도를 조입니다.
- 롱컨텍스트가 표준입니다. 진지한 브리프에는 브랜드 문서, 이전 작업물, 시스템 사양, 참고 이미지가 포함됩니다. 그 컨텍스트는 호스팅 UI의 토큰 예산을 훌쩍 넘어섭니다.
- 모델 선택은 그때그때 정해질 수 있어야 합니다. 어떤 패스는 빠르고 저렴한 모델을 원합니다. 어떤 패스는 사용 가능한 가장 강력한 모델을 원합니다. 어떤 패스는 민감한 콘텐츠를 위해 로컬 모델을 원합니다. 호스팅형 제품은 여러분 대신 하나를 골라버립니다.
BYOK는 이 세 가지를 모두 해결합니다. 여러분은 토큰당 결제하고, 모델을 선택하며, 속도 제한에 걸리지 않습니다.
반복이 더 이상 배급되지 않게 됩니다
이것이야말로 여러분의 작업 방식을 조용히 바꿔놓는 지점입니다. 추가 사이클 하나하나가 플랜에 대해 계량될 때, 여러분은 스스로를 검열하기 시작합니다 — 네 번째 초안이 비싸게 느껴져서 세 번째 초안을 택하게 됩니다. BYOK에서는 한 번 더 패스를 도는 한계 비용이 모델 공급자에서 몇 센트에 불과하므로, 결정은 다시 계량기가 아니라 작업 자체에 관한 것으로 돌아갑니다. 보통 디자인이 좋아지는 지점은 세 번째 초안입니다. 반복에 세금을 매기는 도구는 정확히 가장 중요한 그 단계에 세금을 매기는 셈입니다.
비용은 어떨까요?
흔한 걱정: “직접 결제하면 더 비싸지 않을까?”
실제로는 아닙니다. 우리 내부 사용에서 나온 전형적인 하루치 디자인 작업은 다음과 같습니다:
| 작업 | 토큰 | 공급자 | 비용 |
|---|---|---|---|
| 브리프 인테이크(문서 3건) | 30K 입력 | Claude Sonnet | $0.09 |
| 첫 초안 패스 | 80K 입력 + 20K 출력 | Claude Sonnet | $0.54 |
| 반복 사이클 5회 | 250K 입력 + 80K 출력 | Claude Sonnet | $1.95 |
| 최종 마감 | 50K 입력 + 30K 출력 | Claude Opus(한 패스) | $1.35 |
| 하루 합계 | ~$3.93 |
그것은 덱 하나, 랜딩 변형 두 개, 그리고 브랜드 탐색 하나입니다. 호스팅형으로 동일하게 하면 — 초과 사용 요금이 붙는 월 $30 “크리에이터” 플랜을 가정할 때 — 같은 작업에 약 $50가 들고, 반복은 더 적으며, 하나의 모델에 묶이게 됩니다.
더 저렴하게 가고 싶다면, Claude Sonnet을 DeepSeek V3.2로 바꾸면 하루치가 $1 아래로 떨어집니다. 핵심은 어느 한 모델이 옳다는 것이 아닙니다 — 가격/품질 다이얼이 구독 등급에 박혀 있는 게 아니라 여러분의 손에 있다는 것입니다.
프라이버시와 컴플라이언스
BYOK가 중요한 두 번째 이유가 있습니다: 프롬프트에는 여러분 고객의 브랜드가 담겨 있습니다.
호스팅형 추론은 브랜드 문서, 미발표 제품명, 내부 가격, 출시 전 크리에이티브를 제3자의 서버를 거쳐 라우팅한다는 뜻입니다. 대부분의 회사는 그에 대해 나름의 입장이 있습니다. 일부는 그에 관한 계약을 두고 있습니다.
BYOK에서는 프롬프트 왕복이 여러분의 노트북과, 여러분이 이미 검증한(혹은 자체 호스팅한) 모델 공급자 사이에서만 일어납니다. Open Design은 그 경로 안에 없습니다. 우리에게는 소환장을 받을 로그도, 유출될 침해 표면도, 해명할 감사 공백도 없습니다.
“로그 없음”이 실제로 가져다주는 것
에이전시 작업, 규제 산업, 또는 출시 전 모든 것에 있어서 이것은 버텨낼 수 있는 유일한 입장입니다. 보안 검토에서 “우리 브랜드 자산이 어디로 가나요?”라고 물으면, 답은 “우리 계약 안의 모델 공급자로, 그 외 어디로도 가지 않습니다”입니다 — “우리가 통제하지 못하는 벤더 대시보드로”가 아닙니다. Ollama나 vLLM 엔드포인트를 자체 호스팅하면 더욱 조여집니다: 바이트가 여러분의 네트워크를 아예 떠나지 않습니다. 이는 BYOK 현실 점검에서 탐구한 것과 같은 트레이드오프이며, 그 글은 거친 부분이 여전히 어디에 있는지에 대해 솔직합니다 — 로컬 모델과 프런티어 모델은 취향 면에서 서로 교체 가능하지 않으며, 프롬프트 인젝션 표면은 여러분 스스로 소유하게 됩니다.
프로젝트 도중에 공급자를 전환하는 방법
BYOK의 과소평가된 이점 중 하나는 프로젝트 진행 중의 공급자 차익 거래입니다:
- 초안 작성 — 질문 양식과 첫 반복에는 저렴한 모델(DeepSeek V3.2, Qwen 3)을 사용
- 정교화 — 취향이 중요한 중간 패스에는 Claude Sonnet이나 GPT-5로 전환
- 민감한 콘텐츠 — 고객 기밀 프롬프트에는 로컬 Ollama 모델로 교체
- 최종 마감 — 사용 가능한 가장 강력한 모델(Opus, GPT-5 Pro)에 한 패스를 투입
Open Design에서 전환은 .env.local의 두 줄을 편집하는 일입니다. 마이그레이션도, 다시 온보딩하는 것도, 플랜 업그레이드도 없습니다.
하나의 브리프를 위한 실제 라우팅 예시
구체적으로, 하나의 랜딩 페이지 브리프는 이렇게 진행될 수 있습니다:
# draft + first iterations — cheap and fast
OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_API_KEY=sk-…
# then, for the passes where taste decides the outcome:
OPENAI_BASE_URL=https://api.anthropic.com/v1 # via the compat shim
OPENAI_API_KEY=sk-ant-…
같은 스킬, 디스크에 있는 같은 디자인 시스템, 같은 산출물 — 바뀐 것은 워크플로 뒤의 엔진뿐입니다. 스킬과 시스템은 그저 파일(SKILL.md와 DESIGN.md)이기 때문에, 여러분의 설정 중 어떤 것도 특정 모델에 묶여 있지 않습니다. 이것이 워크플로를 소유한다는 것의 실제 의미입니다: 도구는 길을 비켜주고, 모델은 브리프가 요구하는 대로 바꾸는 하나의 파라미터가 됩니다.
직접 해보기
리포지토리를 클론하고, .env.local에 OPENAI_BASE_URL과 OPENAI_API_KEY를 설정한 뒤, pnpm tools-dev를 실행하세요. daemon은 여러분이 가리키는 어떤 엔드포인트든, 여러분이 결제하는 어떤 모델이든, 여러분이 원하는 어떤 일정으로든 사용할 것입니다.
그것이 BYOK 이야기의 전부입니다. 특별한 등급도, 업그레이드 흐름도, 우리와의 청구 관계도 없습니다. 여러분은 모델 공급자에게 결제하고, 키를 직접 보관하며, 프롬프트를 직접 지킵니다. 우리는 레이어를 제공합니다.
관련 읽을거리
- 우리가 Open Design을 제품이 아닌 스킬 레이어로 만든 이유 — 호스팅형 앱 대신 얇은 레이어를 출시한 데 깔린 베팅
- BYOK 현실 점검: 깨지는 5가지 — 자신의 키를 가져올 때의 솔직한 트레이드오프와 거친 부분들
- 스킬 31개, 시스템 72개: Open Design 라이브러리가 작동하는 방식 — 어떤 모델을 돌리든 변하지 않는
SKILL.md/DESIGN.md파일들