로컬 LLM 돌리기 — ollama로 프라이빗 AI 코딩 어시스턴트 세팅
회사 코드를 외부에 보낼 수 없을 때
회사에서 Claude API나 GitHub Copilot을 쓰려고 했지만, 보안팀이 거절했다. "회사 코드를 외부 서버에 보낼 수 없다"고. 이해가 가는 정책이지만, 개발자로서는 답답했다.
그래서 로컬 LLM을 알아봤고, ollama를 설정했다. 이제 회사 코드를 건드리지 않으면서도 AI 도움을 받을 수 있다.
Ollama 설치 및 기본 설정
<?xml version="1.0"?>
# Mac 설치
brew install ollama
# ollama 서비스 시작
ollama serve
# 다른 터미널에서 모델 다운로드
ollama pull codellama
ollama pull deepseek-coder
ollama pull mistral
# 대화형 사용
ollama run codellama
# API 서버는 localhost:11434에서 실행됨
VS Code 통합
Continue.dev는 VS Code에서 로컬 LLM을 사용할 수 있게 해준다:
<?xml version="1.0"?>
# VS Code Extension 설치
# "Continue" 검색 후 설치
// ~/.continue/config.json
{
"models": [
{
"title": "Ollama Local",
"provider": "ollama",
"model": "codellama",
"apiBase": "http://localhost:11434"
}
],
"tabAutocompleteModel": {
"title": "Ollama Autocomplete",
"provider": "ollama",
"model": "deepseek-coder",
"apiBase": "http://localhost:11434"
},
"slashCommands": [
{
"name": "edit",
"description": "Edit code"
},
{
"name": "comment",
"description": "Add comments"
}
]
}
모델 비교
각 모델의 특징:
<?xml version="1.0"?>
# Codellama (Meta)
# - 코딩 특화
# - 파라미터: 7B, 13B, 34B
# - 7B 추천 (빠름, 4GB RAM)
ollama pull codellama:7b
# Deepseek-coder (Deepseek)
# - 최신, 성능 좋음
# - 6.7B 버전이 작고 빠름
ollama pull deepseek-coder:6.7b
# Mistral (Mistral AI)
# - 일반 목적
# - 빠르고 효율적
ollama pull mistral
# 선택 팁:
# - 빠른 응답 원하면: deepseek-coder:6.7b
# - 정확도 원하면: codellama:34b (13GB RAM 필요)
# - 균형: codellama:13b (6GB RAM)
Git Diff를 이용한 코드 분석
<?xml version="1.0"?>
#!/usr/bin/env python3
# 로컬 LLM으로 커밋 분석
import subprocess
import json
import requests
def get_diff():
return subprocess.check_output(
['git', 'diff', 'HEAD~1'],
text=True
)
def analyze_with_ollama(diff):
response = requests.post(
'http://localhost:11434/api/generate',
json={
'model': 'codellama:7b',
'prompt': f'이 git diff를 분석하고 문제점과 개선안을 찾아줘:
{diff}',
'stream': False
}
)
return response.json()['response']
if __name__ == '__main__':
diff = get_diff()
analysis = analyze_with_ollama(diff)
print(analysis)
성능 최적화
로컬 LLM은 속도가 느릴 수 있다. 최적화 방법:
<?xml version="1.0"?>
# 1. GPU 활용 (훨씬 빠름)
# Mac Silicon: 자동 사용
# NVIDIA: CUDA 지원
# ollama run codellama # CUDA 자동 감지
# 2. 작은 모델 사용
ollama pull codellama:7b # 빠름
# vs
ollama pull codellama:34b # 느림 (더 좋은 답)
# 3. Quantization (더 작은 모델)
# ollama는 이미 quantized 모델 제공
# 4. 컨텍스트 크기 줄이기
# max_tokens를 줄이면 빨라짐
보안 고려사항
로컬 LLM도 주의해야 할 점들:
- 민감한 데이터 (API 키, 비밀번호)를 프롬프트에 포함하지 말 것
- 로컬 LLM도 학습 데이터가 있으니, 정말 민감한 코드는 제거하고 물어볼 것
- 네트워크 제한이 있으면 localhost만 접근 가능하게 설정
마무리
로컬 LLM은 완벽하지 않지만, 회사 보안 정책을 지키면서 AI의 도움을 받을 수 있는 좋은 방법이다. 속도가 느린 게 유일한 단점이지만, 기다릴 가치가 있다.
특히 보안이 중요한 환경이나 인터넷이 제한된 환경에서는 올마가 최고의 선택이다.