---
title: "개발자"
description: "CLI 호출 한 번. 모든 시크릿. 환경 변수 없음. 구성 파일 없음. 로그에 시크릿 없음."
lang: ko
url: https://clavitor.ai/ko/developers
markdown: https://clavitor.ai/ko/developers.md
translation_of: https://clavitor.ai/en/developers.md
authoritative: false
publisher: Clavitor LLC
---

> This is the Korean translation of [Developers](https://clavitor.ai/en/developers.md). The original English text is authoritative; where the two differ, the English version prevails.

# 개발자: CLI 호출 한 번. 모든 시크릿.

환경 변수 없음. 구성 파일 없음. 로그에 시크릿 없음. 코드에 필요한 모든 시크릿은 에이전트가 우회할 수 없는 볼트에서 런타임에 확인돼요.

## 패턴: 한 번만 저장하면 어디서든 가져올 수 있어요.

각 에이전트는 고유한 토큰, 범위, 속도 제한으로 한 번만 초기화돼요. 그 후 에이전트는 런타임에 시크릿을 가져올 수 있어요. 키는 볼트에 암호화되어 저장되며, 환경 변수나 소스 코드에는 절대 저장되지 않아요. 키가 교체되면 볼트 UI에서 업데이트하세요. 모든 에이전트가 자동으로 이를 반영해요.

```
# One-time setup — paste the token at the prompt, or pipe it in

$ echo "$CLAVITOR_TOKEN" | clavitor-cli init

# Single value — piped, never stored

$ clavitor-cli get "Deploy Key" --field private_key | ssh-add -

# Whole config — secrets resolved, template safe to store anywhere

$ clavitor-cli render app.config.json | myapp --config -

# Proxy — credentials injected at the network layer

$ export HTTPS_PROXY=http://localhost:1983
$ curl -H "Authorization: Bearer clavitor://OpenRouter/key" https://openrouter.ai/api/v1/models
```

## 세 가지 사용 방법: 필드, 렌더 또는 프록시.

### 필드

값 하나. 어떤 명령어나 스크립트로든 파이프할 수 있어요. 시크릿은 파이프 안에만 존재해요. 변수에도, 디스크에도 절대 존재하지 않아요.

### 렌더

전체 구성 파일이에요. 시작 시 모든 `clavitor://` 참조를 확인해요. 템플릿은 안전하게 커밋할 수 있어요. 확인된 구성은 파이프 내에 존재해요.

### 프록시

HTTPS 프록시. 헤더에서 자격 증명이 투명하게 확인돼요. 에이전트는 시크릿이 들어가야 할 곳에 `clavitor://`를 작성하고, 프록시가 실제 값을 주입해요. 로그에도, 에이전트 메모리에도 아무것도 남지 않아요.

### 어떤 방식을 사용해야 할까요?

| Feature | Field | Render | Proxy |
|---|---|---|---|
| 로그에서 시크릿 제외 | 3/3 | 2/3 | 3/3 |
| 어떤 프로그래밍 언어에서든 작동해요 | 3/3 | 3/3 | 3/3 |
| 모든 도구 지원(curl, SDK, 브라우저) | 2/3 | 1/3 | 3/3 |
| 에이전트별 범위 지정 및 감사 | 3/3 | 3/3 | 1/3 |
| 여러 시크릿 동시 처리 | 1/3 | 3/3 | 2/3 |
| 코드 변경 불필요 | 0/3 | 0/3 | 3/3 |
| 안전하게 커밋할 수 있는 구성 파일 | 0/3 | 3/3 | 0/3 |
| SSH / 비 HTTP 사용 사례 | 3/3 | 3/3 | 0/3 |

**빠른 선택:** 스크립트나 CLI 도구를 만드나요? **필드**를 사용해요. 구성 파일로 서비스를 배포하나요? **렌더**를 사용해요. API 호출을 수행하는 AI 에이전트를 실행하나요? **프록시**를 사용해요.

## 다른 모든 자격 증명 프록시보다 우수한 이유예요.

**훔칠 것이 없어요.** 클라우드 호스팅 프록시는 가치가 높은 표적이에요. 하나만 뚫려도 모든 고객의 자격 증명을 탈취당해요. 로컬 프록시는 자체 구성에 자격 증명을 저장하며, 머신에 있는 모든 에이전트가 읽을 수 있어요. Clavitor의 프록시는 암호화된 구성 파일만 보유해요. 디스크에 평문 시크릿이 없고, 탈취할 자격 증명 저장소도 없어요.

**에이전트가 강제로 열 수 없어요.** 침해당한 에이전트는 프록시에서 자격 증명을 추출할 수 없어요. 프록시는 API를 노출하거나, 대시보드를 제공하거나, 명령을 수락하지 않아요. 헤더 하나를 읽고, 참조 하나를 확인한 다음, 결과를 아웃바운드 요청에 주입해요. 공격 표면이 없어요.

**로그에 아무것도 남지 않아요.** 에이전트는 `clavitor://Entry/field`를 작성해요. 표준 출력, 로그, 대화 기록에 나타나는 것은 이것뿐이에요. 실제 자격 증명은 한 번의 HTTP 호출 동안 프록시 프로세스 내부에만 존재해요. 로그 수집기, 크래시 덤프, CI 아티팩트 모두 깨끗해요.

**구성 제로.** 라우팅 테이블도, API 매핑도, 관리할 자격 증명 파일도 없어요. 헤더의 `clavitor://` 참조가 유일한 지시사항이에요. `init` 한 번, 환경 변수 하나면 끝나요.

## 언어: 모든 프로그래밍 언어에서 작동해요. SDK가 필요 없어요.

### Bash

```
# The proxy handles credential injection — no secrets in the command

$ export HTTPS_PROXY=http://localhost:1983
$ curl -H "Authorization: Bearer clavitor://OpenRouter API/key" \
  https://openrouter.ai/api/v1/models
```

### Go

```
key, _ := exec.Command("clavitor-cli", "get", "OpenRouter API", "--field", "key").Output()
client := openai.NewClient(option.WithAPIKey(strings.TrimSpace(string(key))))
```

### Python

```
import subprocess
# Pass directly — or use the HTTPS proxy to avoid holding the key entirely

stripe.api_key = subprocess.check_output(
    ["clavitor-cli", "get", "Stripe API", "--field", "key"]
).decode().strip()
```

### Rust

```
let key = std::process::Command::new("clavitor-cli")
    .args(["get", "AWS Credentials", "--field", "secret_key"])
    .output()?;
let client = aws::Client::new(String::from_utf8(key.stdout)?.trim());
```

### TypeScript / Node

```
import { execSync } from 'child_process';
const apiKey = execSync('clavitor-cli get "Anthropic API" --field key').toString().trim();
const client = new Anthropic({ apiKey });
```

### C# / .NET

```
using System.Diagnostics;
var psi = new ProcessStartInfo("clavitor-cli") { RedirectStandardOutput = true, UseShellExecute = false };
psi.ArgumentList.Add("get");
psi.ArgumentList.Add("Stripe API");
psi.ArgumentList.Add("--field");
psi.ArgumentList.Add("key");
var key = Process.Start(psi)!.StandardOutput.ReadToEnd().Trim();
var client = new StripeClient(key);
```

### PowerShell

```
# Single value — pipe or use directly

$key = clavitor-cli get "AWS Credentials" --field secret_key
Set-AWSCredential -AccessKey $env:AWS_ACCESS_KEY -SecretKey $key

# Or use the proxy — no secrets in the script at all

$env:HTTPS_PROXY = "http://localhost:1983"
Invoke-RestMethod -Uri "https://api.openai.com/v1/models" `
  -Headers @{ Authorization = "Bearer clavitor://OpenAI/key" }
```

### Java

```
import java.nio.charset.StandardCharsets;

Process p = new ProcessBuilder("clavitor-cli", "get", "Stripe API", "--field", "key").start();
String key = new String(p.getInputStream().readAllBytes(), StandardCharsets.UTF_8).trim();
Stripe.apiKey = key;
```

## 구성 렌더링: 구성만 저장하고 시크릿은 저장하지 않아요.

`clavitor-cli render`는 모든 파일에서 `clavitor://entry/field` 참조를 스캔하고, 각 참조를 볼트에 대해 확인한 다음 결과를 출력해요. 템플릿은 어디에나 안전하게 저장할 수 있어요. 확인된 구성은 파이프 내에 존재해요. 시크릿은 절대 디스크에 닿지 않아요.

```
# Template (safe to store anywhere)

$ cat app.config.json
{"api_key": "clavitor://OpenRouter API/key", "db": "clavitor://Prod DB/password"}

# Resolved (piped to application, never on disk)

$ clavitor-cli render app.config.json
{"api_key": "[resolved]", "db": "[resolved]"}
```

JSON, YAML, TOML, .env 또는 모든 텍스트 파일과 함께 작동해요. `clavitor://`가 포함되어 있으면 확인돼요.

## 더 많은 통합 가이드

### 인프라

Docker, Kubernetes, Terraform, Ansible, GitHub Actions, GitLab CI, SSH. 구성에 시크릿 제로, 로그에 시크릿 제로.
[인프라 가이드 →](https://clavitor.ai/ko/developers/infrastructure)

### AI 에이전트

Claude Code, Codex, OpenClaw, Hermes, CrewAI, LangChain. 범위 제한 토큰, 감사 로그, 자동 잠금.
[에이전트 가이드 →](https://clavitor.ai/ko/developers/agents)

### MSP 도구

PowerShell, Datto RMM, N-able, ConnectWise Automate. 고객 기반을 위한 자격 증명 발급.
[MSP 가이드 →](https://clavitor.ai/ko/developers/msp)

## 패턴은 항상 동일해요.

CLI 호출 한 번, 어떤 컨텍스트든 가능해요. 에이전트의 범위가 볼 수 있는 것을 결정해요. 암호화 수준이 복호화할 수 있는 것을 결정해요. 감사 로그가 모든 접근을 기록해요.
[무료로 시작하기](https://clavitor.ai/ko/checkout)
