로컬 LLM 돌리기 — ollama로 프라이빗 AI 코딩 어시스턴트 세팅

게시일: 2025년 7월 8일 · 14분 읽기

회사 코드를 외부에 보낼 수 없을 때

회사에서 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도 주의해야 할 점들:

마무리

로컬 LLM은 완벽하지 않지만, 회사 보안 정책을 지키면서 AI의 도움을 받을 수 있는 좋은 방법이다. 속도가 느린 게 유일한 단점이지만, 기다릴 가치가 있다.

특히 보안이 중요한 환경이나 인터넷이 제한된 환경에서는 올마가 최고의 선택이다.

iL
ian.lab

실무 개발자입니다. 현장에서 겪은 문제와 해결 과정을 기록합니다. 오류 제보는 연락처로 보내주세요.