기업에서 AI 코드 어시스턴트를 도입할 때 가장 먼저 맞닥뜨리는 고민이 있다. “코드가 외부로 나가도 되는가?” 보안 정책상 외부 API를 쓸 수 없거나, 비용을 통제하면서도 여러 모델을 실험하고 싶은 경우가 많다. Continue는 이 두 가지 요구를 모두 충족할 수 있는 유연한 구조를 갖추고 있다.
이 글에서는 Continue에 사내 LLM(vLLM, Ollama 등)과 OpenRouter(멀티모델 게이트웨이)를 연동하는 방법을 실전 예시와 함께 정리한다.
1. Continue의 모델 연동 아키텍처
Continue는 OpenAI Chat Completions API 호환 프로토콜을 기반으로 동작한다. 즉, /v1/chat/completions 엔드포인트를 제공하는 서버라면 어떤 LLM이든 연동할 수 있다. 핵심 설정 구조는 다음과 같다:
// ~/.continue/config.json
{
"models": [
{
"provider": "openai",
"apiBase": "http://your-server:8000/v1",
"apiKey": "your-api-key",
"model": "model-name",
"title": "표시 이름"
}
]
}이 구조를 이해하면 아래 모든 연동 방식이 동일한 패턴임을 알 수 있다.
2. OpenRouter 연동: 하나의 키로 100+ 모델 사용
OpenRouter는 OpenAI, Anthropic, Mistral, Meta 등 다양한 제공자의 모델을 하나의 API 키로 호출할 수 있는 게이트웨이 서비스다. 모델별 과금이 투명하고, 팀 단위 예산 관리도 가능해 기업 환경에서 유용하다.
// ~/.continue/config.json — OpenRouter 설정
{
"models": [
{
"provider": "openai",
"apiBase": "https://openrouter.ai/api/v1",
"apiKey": "sk-or-v1-xxxxxxxxxxxx",
"model": "anthropic/claude-sonnet-4",
"title": "Claude Sonnet (OpenRouter)"
},
{
"provider": "openai",
"apiBase": "https://openrouter.ai/api/v1",
"apiKey": "sk-or-v1-xxxxxxxxxxxx",
"model": "mistralai/mistral-large-latest",
"title": "Mistral Large (OpenRouter)"
}
]
}| 항목 | 설명 |
|---|---|
provider | "openai" 고정 (OpenAI 호환 프로토콜 사용) |
apiBase | https://openrouter.ai/api/v1 |
apiKey | OpenRouter 대시보드에서 발급한 API 키 |
model | OpenRouter 모델 ID (예: anthropic/claude-sonnet-4) |
실무 팁: OpenRouter는 HTTP-Referer 헤더를 권장한다. Continue에서는 별도 설정 없이도 동작하지만, 사용량 추적을 위해 requestOptions.headers에 추가할 수 있다.
3. 사내 LLM 연동: vLLM / Ollama / TGI
보안이 중요한 환경에서는 사내 서버에 직접 LLM을 배포하고 Continue에서 연결하는 방식을 택한다. 대표적인 서빙 프레임워크와 설정 방법을 정리한다.
3-1. vLLM (추천)
vLLM은 OpenAI 호환 API를 기본 제공하므로 Continue와 가장 자연스럽게 연동된다.
# vLLM 서버 실행
python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-3-8B-Instruct --port 8000// Continue 설정
{
"provider": "openai",
"apiBase": "http://internal-gpu-server:8000/v1",
"apiKey": "dummy",
"model": "meta-llama/Llama-3-8B-Instruct",
"title": "사내 Llama 3 (vLLM)"
}3-2. Ollama (로컬 개발용)
개인 개발 환경에서 빠르게 테스트할 때는 Ollama가 편리하다. Continue에 내장 provider가 있어 설정이 더 간단하다.
// Ollama 전용 설정
{
"provider": "ollama",
"model": "llama3",
"title": "Llama 3 (Ollama Local)"
}3-3. 연동 방식 비교
| 구분 | OpenRouter | vLLM (사내) | Ollama (로컬) |
|---|---|---|---|
| 용도 | 다양한 모델 실험, 팀 공유 | 프로덕션 사내 배포 | 개인 로컬 테스트 |
| 보안 | 외부 전송 (암호화) | 내부망 격리 | 로컬 전용 |
| 비용 | 모델별 종량제 | GPU 인프라 비용 | 무료 (로컬 자원) |
| 설정 난이도 | 낮음 | 중간 | 매우 낮음 |
| 성능 | 네트워크 의존 | GPU 스펙 의존 | 로컬 하드웨어 의존 |
4. 프롬프트 템플릿 커스터마이징
사내 모델이나 파인튜닝된 모델은 프롬프트 형식이 OpenAI와 다를 수 있다. Continue는 ~/.continue/config.json의 completionOptions에서 시스템 메시지를 커스터마이징할 수 있다.
{
"models": [{
"provider": "openai",
"apiBase": "http://internal-server:8000/v1",
"model": "custom-model",
"systemMessage": "당신은 숙련된 시니어 개발자입니다. 한국어로 답변하세요.",
"completionOptions": {
"temperature": 0.3,
"maxTokens": 4096
}
}]
}주의: temperature를 너무 높이면 코드 생성 품질이 떨어지고, 너무 낮추면 창의적인 제안이 줄어든다. 코드 어시스턴트 용도로는 0.2~0.4가 적절하다.
5. 연동 후 검증 체크리스트
설정을 완료한 후 아래 항목을 반드시 확인한다:
- 응답 테스트: Continue 사이드바에서 간단한 질문을 던져 모델이 정상 응답하는지 확인
- 지연 시간: 코드 자동완성(Tab) 시 체감 속도가 괜찮은지 (200ms 이하 권장)
- 에러 로그: VSCode Output 패널 → Continue에서 API 오류 메시지 확인
- 모델 전환: 여러 모델을 등록했다면 사이드바 하단 드롭다운에서 전환이 되는지 확인
- 한글 지원: 주석이나 커밋 메시지 작성 시 한글이 깨지지 않는지 확인
마치며
Continue는 단순한 VSCode 확장이 아니라, OpenAI 호환 프로토콜을 기반으로 어떤 LLM이든 연결할 수 있는 유연한 AI 코딩 프론트엔드다. OpenRouter로 다양한 모델을 실험하고, vLLM으로 사내 보안을 확보하며, Ollama로 로컬에서 빠르게 프로토타이핑할 수 있다.
특히 기업 환경에서는 “어떤 모델을 쓸 것인가”보다 “코드가 어디로 전송되는가”가 더 중요한 의사결정 기준이 된다. Continue의 유연한 연동 구조는 이 고민에 대한 실질적인 해답을 제공한다.