ccNexus์(๋) ๋ฌด์์ ํ๋์?
๐ Claude Code์ฉ API ์๋ํฌ์ธํธ ๋กํ ์ด์ ์ ์๋ํํ์ฌ ๋ค์ค ์ ๊ณต์ ์ง์, ์ค๋งํธ ์ฌ์๋, ์ค์๊ฐ ํต๊ณ๋ฅผ ํตํด ์์ ์ฑ๊ณผ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
๊ฐ์
ccNexus๋ Claude Code ํ๊ฒฝ์์ API ํธ์ถ์ ์ ๋ขฐ์ฑ์ ๋์ด๊ธฐ ์ํด ์ค๊ณ๋ ๋๊ตฌ์ ๋๋ค. ๋ค์ค API ์ ๊ณต์๋ฅผ ์ง์ํ๋ฉฐ, ์๋ํฌ์ธํธ ์ฅ์ ์ ์๋์ผ๋ก ๋์ฒด ์๋ํฌ์ธํธ๋ก ์ ํํ๊ณ ์ง๋ฅ์ ์ธ ์ฌ์๋ ์ ๋ต์ ์ ์ฉํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- ๋ค์ค ์ ๊ณต์ ์ง์: OpenAI, Anthropic ๋ฐ OpenAI ํธํ API ์ ๊ณต์๋ฅผ ์ง์ํฉ๋๋ค.
- ์๋ ์๋ํฌ์ธํธ ๋กํ ์ด์ : ์ฅ์ ๋ฐ์ ์ ์๋์ผ๋ก ๋ค์ ์๋ํฌ์ธํธ๋ก ์ ํํฉ๋๋ค.
- ์ค๋งํธ ์ฌ์๋: ๋คํธ์ํฌ ์ค๋ฅ, ์๋ ์ ํ, ์๋ฒ ์ค๋ฅ ๋ฑ ๋ค์ํ ์ค๋ฅ ์ ํ์ ๋ง๋ ์ฌ์๋ ์ ๋ต์ ์ ๊ณตํฉ๋๋ค.
- ์ค์๊ฐ ํต๊ณ: API ํธ์ถ ์ฑ๊ณต๋ฅ , ์ง์ฐ ์๊ฐ, ์ฌ์ฉ๋ ํจํด์ ๋ชจ๋ํฐ๋งํ ์ ์๋ ๋์๋ณด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๊ตฌ์ฑ ๊ฐ๋ฅ: ํ๊ฒฝ ๋ณ์ ๋๋ ๊ตฌ์ฑ ํ์ผ์ ํตํด ๊ฐํธํ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
์ค์น
npm install -g ccnexus
# ๋๋
npx ccnexus init
์ฌ์ฉ ๋ฐฉ๋ฒ
1. ๊ตฌ์ฑ ํ์ผ ์์ฑ
ํ๋ก์ ํธ ๋ฃจํธ์ ccnexus.config.json ํ์ผ์ ์์ฑํฉ๋๋ค:
{
"providers": [
{
"name": "openai",
"apiKey": "sk-your-openai-api-key",
"endpoint": "https://api.openai.com/v1"
},
{
"name": "anthropic",
"apiKey": "sk-ant-your-anthropic-api-key",
"endpoint": "https://api.anthropic.com/v1"
}
],
"retry": {
"maxRetries": 3,
"baseDelay": 1000,
"maxDelay": 30000
},
"monitoring": {
"enableStats": true,
"logLevel": "info"
}
}
2. ํ๊ฒฝ ๋ณ์ ์ค์
export CCNEXUS_CONFIG_PATH="./ccnexus.config.json"
export CCNEXUS_DEFAULT_PROVIDER="openai"
3. Claude Code์ ํตํฉ
Claude Code ํ๋กฌํํธ์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํตํฉํฉ๋๋ค:
/ccnexus start
4. ๋ช ๋ น์ด ๋ชฉ๋ก
ccnexus start: ์๋ํฌ์ธํธ ๋กํ ์ด์ ์๋น์ค ์์ccnexus status: ํ์ฌ ์ฐ๊ฒฐ ์ํ ๋ฐ ํต๊ณ ํ์ธccnexus switch <provider>: ํน์ ์ ๊ณต์๋ก ์๋ ์ ํccnexus stats: ์ค์๊ฐ ํต๊ณ ๋์๋ณด๋ ํ์ccnexus stop: ์๋น์ค ์ค์ง
์ค์๊ฐ ํต๊ณ ์์
๐ ccNexus ํต๊ณ ๋์๋ณด๋
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
์ด ์์ฒญ: 1,234
์ฑ๊ณต: 1,210 (98.1%)
์คํจ: 24 (1.9%)
ํ๊ท ์ง์ฐ ์๊ฐ: 342ms
ํ์ฑ ์ ๊ณต์: openai
๋์ฒด ์ ๊ณต์: anthropic (์ค๋น)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๋ฌธ์ ํด๊ฒฐ
๋ก๊ทธ ํ์ธ
ccnexus logs --level debug
๊ตฌ์ฑ ๊ฒ์ฆ
ccnexus validate
๋ผ์ด์ ์ค
MIT License
๊ธฐ์ฌ
๋ฒ๊ทธ ๋ฆฌํฌํธ, ๊ธฐ๋ฅ ์ ์, ํ ๋ฆฌํ์คํธ๋ฅผ ํ์ํฉ๋๋ค. GitHub ์ ์ฅ์๋ฅผ ๋ฐฉ๋ฌธํด์ฃผ์ธ์.