Continue.dev 가이드
VS Code에서 직접 사용하는 오픈소스 AI 코딩 어시스턴트. 다중 LLM 지원, 무료, 완벽한 커스터마이징.
업데이트 안내: 모델/요금/버전/정책 등 시점에 민감한 정보는 변동될 수 있습니다.
최신 내용은 공식 문서를 확인하세요.
⚡ 빠른 시작
# 1. VS Code 확장 설치
Extensions → "Continue" 검색 → 설치
# 2. 설정 (Cmd/Ctrl + Shift + P)
Continue: Open Config
# 3. 단축키
Cmd/Ctrl + L # 채팅 열기
Cmd/Ctrl + I # 인라인 편집
소개
Continue.dev는 VS Code와 JetBrains IDE에서 사용할 수 있는 오픈소스 AI 코딩 어시스턴트입니다. GitHub Copilot과 유사하지만, 다양한 LLM 제공자를 자유롭게 선택하고 설정할 수 있습니다.
왜 Continue인가?
| 특징 | 설명 |
|---|---|
| 오픈소스 | Apache 2.0 라이선스, 완전 무료, 커뮤니티 주도 |
| 다중 LLM | Claude, GPT-4, Gemini, Ollama, DeepSeek 등 모두 지원 |
| IDE 통합 | VS Code, IntelliJ, PyCharm 등 네이티브 통합 |
| 프라이버시 | 로컬 LLM(Ollama) 사용 시 완전한 프라이버시 |
| 커스터마이징 | config.json으로 모든 설정 완벽 제어 |
| 무료 | Ollama와 함께 사용 시 완전 무료 |
핵심 기능
- 인라인 편집 (Cmd+I): 코드 중간에 AI 호출
- 채팅 (Cmd+L): 사이드바에서 대화형 코딩
- 자동완성: GitHub Copilot처럼 Tab 키로 완성
- 문서 검색: @docs로 문서 참조
- 코드베이스 검색: @codebase로 전체 프로젝트 검색
- 컨텍스트 제공자: 파일, 터미널, 문제 등 자동 컨텍스트
설치
VS Code 확장 설치
방법 1: 마켓플레이스
# VS Code 열기
1. Extensions (Cmd/Ctrl + Shift + X)
2. "Continue" 검색
3. "Continue - Codestral, Claude, and more" 설치
4. Reload
방법 2: 커맨드라인
code --install-extension continue.continue
JetBrains IDE 설치
# IntelliJ, PyCharm, WebStorm 등
1. Settings → Plugins
2. "Continue" 검색
3. Install
4. Restart IDE
초기 설정
설치 후 처음 실행 시:
# 1. Continue 사이드바 열기
Cmd/Ctrl + L
# 2. LLM 제공자 선택
- Ollama (로컬, 무료)
- Anthropic Claude
- OpenAI GPT-4
- Google Gemini
- Azure OpenAI
- 기타 커스텀
# 3. API 키 입력 (필요 시)
# Ollama 선택 시 API 키 불필요
기본 사용법
인라인 편집 (Cmd+I)
코드 작성 중 AI를 즉시 호출하여 편집하거나 생성합니다. 가장 자주 사용하는 기능입니다.
사용 예시
// 1. 함수 작성 요청
// 커서를 빈 줄에 두고 Cmd+I
[Continue]: "사용자 인증 함수 만들어줘. JWT 토큰 검증."
// AI가 생성:
function verifyToken(token) {
const jwt = require('jsonwebtoken');
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
return { valid: true, user: decoded };
} catch (error) {
return { valid: false, error: error.message };
}
}
// 2. 코드 리팩토링
// 기존 코드 선택 후 Cmd+I
function processUsers(users) {
let result = [];
for (let i = 0; i < users.length; i++) {
if (users[i].active) {
result.push(users[i].name);
}
}
return result;
}
[Continue]: "이 코드를 함수형으로 리팩토링해줘"
// AI가 변환:
const processUsers = (users) =>
users
.filter(user => user.active)
.map(user => user.name);
채팅 (Cmd+L)
사이드바에서 AI와 대화하며 코드를 작성하고 질문합니다.
# 채팅 패널 열기
Cmd/Ctrl + L
💬 You: "React 컴포넌트 만들어줘. 사용자 프로필 카드.
이름, 이메일, 아바타 표시. TypeScript 사용."
🤖 Continue: "UserProfileCard.tsx를 생성하겠습니다."
// 파일이 생성되고 코드가 삽입됨
채팅 슬래시 명령어
| 명령어 | 설명 |
|---|---|
/edit |
선택한 코드 편집 |
/comment |
코드에 주석 추가 |
/share |
대화 공유 링크 생성 |
/cmd |
터미널 명령어 생성 |
/commit |
Git 커밋 메시지 생성 |
자동완성 (Tab)
타이핑하면 자동으로 코드 제안이 나타납니다. Tab 키로 수락.
// 타이핑 중...
function fetchUser(
// Continue가 자동 제안 (회색 텍스트):
function fetchUser(id) {
return fetch(`/api/users/${id}`)
.then(res => res.json());
}
// Tab 키로 수락
고급 기능
컨텍스트 제공자
@ 기호로 특정 컨텍스트를 참조할 수 있습니다.
@codebase - 코드베이스 검색
💬 You: "@codebase 사용자 인증 로직이 어디 있어?"
🤖 Continue: "src/auth/verifyToken.js에 JWT 검증 로직이 있습니다."
@docs - 문서 참조
💬 You: "@docs React useEffect 사용법 알려줘"
🤖 Continue: "React 공식 문서를 참조했습니다. useEffect는..."
@file - 특정 파일 참조
💬 You: "@file:src/App.tsx 이 파일에 라우팅 추가해줘"
@terminal - 터미널 출력 참조
💬 You: "@terminal 이 에러 수정해줘"
# 터미널의 마지막 출력을 AI가 읽고 분석
@problems - VS Code 문제 패널 참조
💬 You: "@problems 모든 경고 수정해줘"
멀티파일 편집
한 번의 요청으로 여러 파일을 동시에 수정할 수 있습니다.
💬 You: "사용자 인증 시스템 전체 추가해줘.
- auth.js (JWT 로직)
- middleware.js (Express 미들웨어)
- routes/auth.js (회원가입/로그인 라우트)
- models/User.js (Mongoose 모델)
필요한 파일 모두 생성해줘."
🤖 Continue: "4개 파일을 생성하겠습니다..."
# 파일들이 자동 생성되고 내용이 채워짐
커스텀 명령어
자주 사용하는 작업을 커스텀 슬래시 명령으로 저장할 수 있습니다.
// config.json
{
"slashCommands": [
{
"name": "test",
"description": "Generate unit tests",
"prompt": "Write comprehensive unit tests for {{{ input }}} using Jest"
},
{
"name": "docstring",
"description": "Add docstrings",
"prompt": "Add detailed docstrings to this code: {{{ input }}}"
}
]
}
사용:
# 코드 선택 후
💬 You: "/test"
# → 자동으로 테스트 코드 생성
설정 (config.json)
설정 파일 열기
# VS Code에서
Cmd/Ctrl + Shift + P → "Continue: Open Config"
# 또는 직접 편집
~/.continue/config.json # macOS/Linux
%USERPROFILE%\.continue\config.json # Windows
LLM 설정
Claude 설정
{
"models": [
{
"title": "Claude Sonnet (균형)",
"provider": "anthropic",
"model": "claude-" ,
"apiKey": "YOUR_ANTHROPIC_API_KEY"
}
]
}
Ollama 설정 (로컬)
{
"models": [
{
"title": "Llama 3.2 (로컬)",
"provider": "ollama",
"model": "llama3.2",
"apiBase": "http://localhost:11434"
}
]
}
다중 모델 설정
{
"models": [
{
"title": "Claude (복잡한 작업)",
"provider": "anthropic",
"model": "claude-" ,
"apiKey": "${ANTHROPIC_API_KEY}"
},
{
"title": "GPT-4 (일반)",
"provider": "openai",
"model": "gpt-4",
"apiKey": "${OPENAI_API_KEY}"
},
{
"title": "Ollama (간단)",
"provider": "ollama",
"model": "llama3.2"
}
],
"tabAutocompleteModel": {
"title": "Starcoder (자동완성)",
"provider": "ollama",
"model": "starcoder2:3b"
}
}
컨텍스트 제공자 설정
{
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {
"startUrl": "https://react.dev"
}
},
{
"name": "diff",
"params": {}
},
{
"name": "terminal",
"params": {}
},
{
"name": "problems",
"params": {}
},
{
"name": "codebase",
"params": {}
}
]
}
완전한 설정 예시
{
"models": [
{
"title": "Claude Sonnet (균형)",
"provider": "anthropic",
"model": "claude-" ,
"apiKey": "${ANTHROPIC_API_KEY}"
},
{
"title": "Llama 3.2",
"provider": "ollama",
"model": "llama3.2"
}
],
"tabAutocompleteModel": {
"title": "Starcoder",
"provider": "ollama",
"model": "starcoder2:3b"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
},
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "diff",
"params": {}
},
{
"name": "terminal",
"params": {}
},
{
"name": "codebase",
"params": {}
}
],
"slashCommands": [
{
"name": "edit",
"description": "Edit highlighted code"
},
{
"name": "comment",
"description": "Write comments for highlighted code"
},
{
"name": "share",
"description": "Export this session to markdown"
},
{
"name": "cmd",
"description": "Generate a shell command"
}
]
}
Ollama 연동 (무료 사용)
Ollama를 사용하면 API 키 없이 완전 무료로 Continue를 사용할 수 있습니다.
Ollama 설치
# macOS/Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows
# https://ollama.com 에서 다운로드
# 모델 다운로드
ollama pull llama3.2 # 채팅용
ollama pull starcoder2:3b # 자동완성용
ollama pull nomic-embed-text # 임베딩용
Continue + Ollama 설정
{
"models": [
{
"title": "Llama 3.2",
"provider": "ollama",
"model": "llama3.2"
}
],
"tabAutocompleteModel": {
"title": "Starcoder",
"provider": "ollama",
"model": "starcoder2:3b"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
}
}
추천 Ollama 모델
| 모델 | 용도 | 크기 |
|---|---|---|
llama3.2 |
범용 코딩 | 2GB |
codellama |
코드 전용 | 3.8GB |
deepseek-coder-v2 |
고급 코딩 | 8.9GB |
starcoder2:3b |
자동완성 | 1.7GB |
nomic-embed-text |
임베딩 | 274MB |
실전 워크플로우
새 기능 개발
# 1. Cmd+L로 채팅 열기
💬 You: "Next.js 프로젝트에 블로그 기능 추가해줘.
필요한 것:
- app/blog/page.tsx (블로그 목록)
- app/blog/[slug]/page.tsx (개별 글)
- lib/posts.ts (Markdown 파싱)
- 글 3개 샘플 (content/posts/)
TypeScript + Tailwind 사용."
🤖 Continue: "블로그 기능을 생성하겠습니다..."
# 여러 파일이 자동 생성됨
버그 수정
# 1. 터미널에서 에러 발생
TypeError: Cannot read property 'map' of undefined
# 2. Cmd+L
💬 You: "@terminal 이 에러 수정해줘"
🤖 Continue: "UserList.tsx의 users가 undefined입니다.
Optional chaining을 추가하겠습니다."
# 자동으로 파일이 수정됨
코드 리팩토링
# 1. 코드 선택
# 2. Cmd+I
[Continue]: "이 코드를 다음과 같이 개선해줘:
- TypeScript로 변환
- 함수형으로 리팩토링
- 에러 처리 추가
- JSDoc 주석 작성"
# AI가 즉시 리팩토링
테스트 작성
# 함수 선택 후 Cmd+I
[Continue]: "이 함수에 대한 Jest 테스트 작성해줘.
엣지 케이스 모두 포함."
# 자동으로 .test.ts 파일 생성
문서화
# 코드 선택 후
💬 You: "/comment"
# 또는
💬 You: "이 모듈에 대한 README.md 작성해줘.
설치, 사용법, API 문서 포함."
모범 사례
효과적인 사용법
1. 적절한 기능 선택
| 상황 | 추천 기능 |
|---|---|
| 빠른 코드 수정 | 인라인 편집 (Cmd+I) |
| 복잡한 기능 추가 | 채팅 (Cmd+L) |
| 코드 자동완성 | Tab 키 |
| 에러 디버깅 | @terminal + 채팅 |
| 전체 프로젝트 질문 | @codebase + 채팅 |
2. 컨텍스트 제공
- 명확한 요청: "React 컴포넌트" 대신 "React + TypeScript + Tailwind 컴포넌트"
- @ 활용: @file, @codebase, @docs로 정확한 컨텍스트
- 예시 포함: 원하는 결과의 예시를 제공
3. 모델 전환
# config.json에서 여러 모델 설정
# 간단한 작업: Ollama
# 복잡한 작업: Claude
# 채팅 중 모델 전환 가능
비용 최적화
- Ollama 우선: 간단한 작업은 로컬 모델 사용
- 자동완성 모델: 가벼운 모델 (starcoder2:3b) 사용
- 컨텍스트 최소화: 필요한 파일만 @file로 참조
- 임베딩 로컬화: Ollama의 nomic-embed-text 사용
생산성 팁
- 단축키 숙달: Cmd+I, Cmd+L 근육 기억
- 슬래시 명령: /edit, /comment, /commit 활용
- 커스텀 명령: 반복 작업을 슬래시 명령으로 저장
- 멀티모델: 작업별로 최적 모델 사용
- 컨텍스트 제공자: @terminal, @problems로 즉시 디버깅
다른 도구와 비교
vs GitHub Copilot
| 특징 | Continue | GitHub Copilot |
|---|---|---|
| 가격 | 무료 (Ollama 사용 시) | 변동/월 |
| 모델 선택 | 다양 (Claude, GPT-4, Ollama 등) | 고정 (GPT-4 기반) |
| 오픈소스 | ✅ Apache 2.0 | ❌ 독점 |
| 채팅 | ✅ 내장 | ✅ 내장 |
| 자동완성 | ✅ | ✅ |
| 로컬 모델 | ✅ Ollama 지원 | ❌ |
| 프라이버시 | 완벽 (로컬 모델 사용 시) | 제한적 |
vs Cursor
| 특징 | Continue | Cursor |
|---|---|---|
| 설치 | VS Code 확장 | 별도 IDE |
| 가격 | 무료 | 무료 / Pro 변동/월 |
| 모델 | 모든 모델 | GPT-4, Claude |
| 기존 설정 | VS Code 설정 유지 | 새로 설정 필요 |
| 오픈소스 | ✅ | ❌ |
vs Codex
Continue는 IDE 확장 기반의 보조형 도구인 반면, Codex는 앱/웹/CLI에서 작업 단위로 실행되는 코딩 에이전트입니다. 자세한 흐름은 Codex 가이드를 참고하세요.
| 특징 | Continue | Codex |
|---|---|---|
| 형태 | VS Code 확장 | 앱/웹/CLI |
| 자율성 | ❌ 낮음 (수동 보조) | ✅ 높음 (에이전트) |
| 워크플로우 | 편집/채팅 중심 | 작업 단위 계획/실행 |
| 계정/키 | API 키 기반 | 계정 로그인 또는 API 키 |
| 추천 사용 | IDE 내부 보조 | 분리된 에이전트 작업 |
vs Cline
| 특징 | Continue | Cline |
|---|---|---|
| 자율성 | 수동 (사용자 요청) | 자율 에이전트 |
| 파일 편집 | ✅ | ✅ |
| 터미널 실행 | 제한적 (/cmd) | ✅ 완전 제어 |
| 모델 | 다양 | 주로 Claude |
| 사용 편의성 | 간단, 직관적 | 강력, 복잡 |
트러블슈팅
일반적인 문제
❌ Continue 사이드바가 보이지 않음
해결:
Cmd/Ctrl + L # 사이드바 토글
# 또는
View → Command Palette → "Continue: Open Continue"
❌ API 키 오류
해결:
# config.json 확인
"apiKey": "${ANTHROPIC_API_KEY}" # 환경 변수 사용
"apiKey": "sk-ant-api03-xxx" # 또는 직접 입력
# 환경 변수 설정
export ANTHROPIC_API_KEY="sk-ant-api03-xxx"
code # VS Code 재시작
❌ Ollama 연결 실패
해결:
# Ollama 서버 확인
ollama list
curl http://localhost:11434
# Ollama 재시작
ollama serve
❌ 자동완성이 느림
해결:
# 더 가벼운 모델 사용
{
"tabAutocompleteModel": {
"provider": "ollama",
"model": "starcoder2:3b" # 1.7GB, 빠름
}
}
❌ 파일이 생성되지 않음
해결:
- 더 명확한 요청 (파일 경로 명시)
- 워크스페이스 폴더가 열려 있는지 확인
- 파일 쓰기 권한 확인
디버깅
# 개발자 도구 열기
Help → Toggle Developer Tools
# Console에서 Continue 로그 확인
# 에러 메시지 확인
핵심 정리
- Continue.dev 가이드의 핵심 개념과 흐름을 정리합니다.
- 소개를 단계별로 이해합니다.
- 실전 적용 시 기준과 주의점을 확인합니다.