Ollama 모델 기반의 OCode
요약
OCode는 Ollama 모델을 기반으로 작동하는 터미널 네이티브 AI 코딩 어시스턴트입니다. 전체 프로젝트를 이해하는 코드베이스 지능과 자율적인 작업 실행 능력을 갖추고 있으며, MCP를 통한 확장성도 제공합니다.
핵심 포인트
- Ollama 모델과의 직접적인 통합을 통해 로컬/원격 모델의 스트리밍 지원
- 터미널 환경에서 직접 실행되는 셸 기반의 워크플로우 제공
- 코드 생성, 리팩토링, Git 관리, 시스템 운영 등 19개 이상의 특화된 도구 포함
- Model Context Protocol(MCP)을 지원하여 제3자 도구와의 확장 가능성 확보
Ollama 모델 기반
OCode는 심층적인 코드베이스 지능(Codebase Intelligence)과 자율적인 작업 실행을 제공하는 정교한 터미널 네이티브 (Terminal-native) AI 코딩 어시스턴트입니다. 로컬 Ollama 모델과 원활하게 작동하도록 설계된 OCode는 엔터프라이즈급 AI 지원을 개발 워크플로우에 직접 가져옵니다.
터미널 네이티브 (Terminal-native) 워크플로우 – 셸(Shell) 환경에서 직접 실행
심층적인 코드베이스 지능 (Deep codebase intelligence) – 전체 프로젝트를 자동으로 매핑하고 이해
자율적인 작업 실행 (Autonomous task execution) – 다단계 개발 작업을 엔드 투 엔드(End-to-end)로 처리
직접적인 Ollama 통합 – 프록시 없이 로컬/원격 Ollama로부터 완성된 결과물을 스트리밍
확장 가능한 플러그인 레이어 – 모델 컨텍스트 프로토콜 (Model Context Protocol, MCP)을 통한 제3자 통합 지원
| 도메인 | 기능 |
|---|---|
| 코드 생성 및 수정 (Code Generation & Modification) | 다중 파일 리팩토링 (Refactors), TDD 스캐폴딩 (Scaffolding), 최적화, 문서화 |
| 프로젝트 이해 (Project Understanding) | 아키텍처 분석, 의존성 추적, 파일 간 추론 |
| 개발 자동화 (Development Automation) | Git 워크플로우, 테스트 실행, 빌드 및 CI 통합 |
| 데이터 처리 (Data Processing) | JSON/YAML 파싱 및 쿼리, 데이터 검증, 형식 변환 |
| 시스템 운영 (System Operations) | 프로세스 모니터링, 환경 관리, 네트워크 연결 테스트 |
| 대화형 운영 (Interactive Operations) | 자연어 질의, 문맥적 탐색, 디버깅 지원 |
OCode는 카테고리별로 정리된 19개 이상의 특화된 도구를 포함합니다:
file_edit
- 소스 파일을 정밀하게 편집 및 수정
file_ops
- 파일 읽기, 쓰기 및 파일 작업 관리
glob
- 패턴 기반 파일 검색 및 매칭
find
- 파일 및 디렉토리 검색
ls
- 필터링을 포함한 디렉토리 내용 목록 표시
head_tail
- 파일의 시작과 끝 부분 읽기
wc
- 줄, 단어 및 문자 수 세기
grep
- 정규 표현식 (Regex) 지원을 통한 고급 텍스트 검색
text_tools
- 텍스트 조작 및 포맷팅
diff
- 파일 비교 및 차이점 표시
json_yaml
- JSONPath를 사용한 JSON/YAML 데이터 파싱, 쿼리 및 조작
notebook_tools
- Jupyter 노트북 작업
ps
-
시스템 프로세스 (system processes) 모니터링 및 쿼리
env -
환경 변수 (environment variables) 및 .env 파일 관리
ping -
네트워크 연결 (network connectivity) 테스트
bash -
셸 명령 (shell commands) 안전하게 실행
which -
시스템 명령 (system commands) 위치 찾기
git_tools
-
Git 작업 및 리포지토리 (repository) 관리
architect -
프로젝트 아키텍처 (architecture) 분석 및 문서화
agent -
전문화된 에이전트 (agents)에게 복잡한 작업 위임
memory_tools -
컨텍스트 (context) 및 세션 메모리 (session memory) 관리
mcp
-
모델 컨텍스트 프로토콜 (Model Context Protocol) 통합
curl -
HTTP 요청 (HTTP requests) 및 API 테스트
# 자동 설치 (권장)
curl -fsSL https://raw.githubusercontent.com/haasonsaas/ocode/main/scripts/install.sh | bash
이 명령은 다음을 수행합니다:
- ✅ Python 3.8+ 및 의존성 (dependencies) 확인
- 🐍 가상 환경 (virtual environment) 설정 (선택 사항)
- 📦 강화된 멀티 액션 탐지 (multi-action detection) 기능이 포함된 OCode 설치
- 🤖 데이터 처리 및 시스템 모니터링을 포함한 19개 이상의 전문화된 도구 (tools) 구성
- 🔧 셸 완성 (shell completion) 설정
- ✨ 강화된 대화 파싱 (conversation parsing) 테스트
수동 설치를 선호하거나 사용자 정의 설정이 필요한 경우:
필수 사항:
Python 3.8+
python --version또는python3 --version으로 확인
pip
- Python과 함께 제공되어야 하며,
pip --version으로 확인
전체 기능 사용을 위해:
Ollama
- 로컬 LLM 서버 (설치 가이드)
Git
- Git 통합 기능을 위해 필요
Python 3.8+가 설치되어 있지 않은 경우:
macOS:
# Homebrew 사용 (권장)
brew install python@3.11
# 또는 python.org에서 다운로드
...
Linux (Ubuntu/Debian):
# 패키지 리스트 업데이트
sudo apt update
# Python 3.11 및 pip 설치
...
Linux (CentOS/RHEL/Fedora):
# Fedora
sudo dnf install python311 python311-pip python311-venv
# CentOS/RHEL (EPEL 사용)
...
Windows:
# python.org에서 다운로드하여 설치 프로그램 실행
# https://www.python.org/downloads/windows/
# 설치 중 "Add Python to PATH"를 반드시 체크하세요
...
Python 설치 확인:
# Python 버전 확인
python3 --version
# 또는
...
가상 환경 (virtual environment) 설정 (강력 권장):
# OCode를 위한 전용 디렉토리 생성
mkdir ~/ocode-workspace
cd ~/ocode-workspace
...
pip 권한 문제가 발생하는 경우:
# 옵션 1: --user 플래그 사용 (사용자 디렉토리에 설치)
python3 -m pip install --user --upgrade pip
# 옵션 2: 가상 환경 (virtual environment) 사용 (권장)
...
macOS:
# Homebrew 사용 (권장)
brew install ollama
# 또는 https://ollama.ai 에서 다운로드
Linux:
# 한 줄 설치 프로그램
curl -fsSL https://ollama.ai/install.sh | sh
# 또는 패키지 관리자 (package manager) 사용
...
Windows:
# https://ollama.ai 에서 다운로드
# 또는 위의 Linux 지침에 따라 WSL 사용
Ollama 시작하기:
# Ollama 서비스 시작
ollama serve
# 새 터미널에서 모델 다운로드
...
Ollama 작동 여부 확인:
# 서비스가 실행 중인지 확인
curl http://localhost:11434/api/version
# 다음과 같은 결과가 반환되어야 합니다: {"version":"0.7.1"}
...
방법 1: 강화된 설치 스크립트 (권장)
# 설치 스크립트 클론(clone) 및 실행
git clone https://github.com/haasonsaas/ocode.git
cd ocode
...
방법 2: 개발용 설치 (Development Installation)
# 저장소(repository) 클론
git clone https://github.com/haasonsaas/ocode.git
cd ocode
...
방법 3: 직접 Git 설치
pip install git+https://github.com/haasonsaas/ocode.git
방법 4: pipx 사용 (격리된 설치)
# pipx가 설치되어 있지 않다면 설치
pip install pipx
# ocode 설치
...
# ocode 명령어를 사용할 수 있는지 확인
python -m ocode_python.core.cli --help
# 다음과 같이 표시되어야 합니다:
...
"command not found" 오류가 발생하는 경우: 아래의 문제 해결 (Troubleshooting) 섹션을 참조하세요.
# 프로젝트 디렉토리로 이동
cd /path/to/your/project
# 이 프로젝트를 위한 OCode 초기화
...
# Ollama 호스트 설정 (기본 localhost를 사용하는 경우 이 단계는 필요하지 않음)
export OLLAMA_HOST=http://localhost:11434
# 간단한 프롬프트로 테스트
...
OCode는 다중 동작 감지 (multi-action detection) 기능이 포함된 고급 대화 파싱 (conversation parsing) 기능을 포함합니다:
# 이제 이 쿼리들은 필요한 여러 작업을 정확하게 식별합니다:
python -m ocode_python.core.cli -p "Run tests and commit if they pass" # test_runner + git_commit
python -m ocode_python.core.cli -p "Find all TODO comments and replace them" # grep + file_edit
...
14개 이상의 쿼리 카테고리 (Query Categories): 에이전트 관리 (Agent management), 파일 작업 (file operations), 테스트 (testing), git, 아키텍처 분석 (architecture analysis), 데이터 처리 (data processing)
19개 이상의 특화된 도구 (Specialized Tools): 데이터 처리 및 시스템 모니터링을 포함한 개발 워크플로 (development workflows)에 대한 포괄적인 지원
컨텍스트 최적화 (Context Optimization): 쿼리 유형에 기반한 지능형 파일 분석
에이전트 위임 (Agent Delegation): 복잡한 다단계 워크플로 (multi-step workflows)를 위한 권장 사항
도구 고정 제거 (Tool fixation eliminated): 더 이상 도구 목록을 기본값으로 사용하지 않음
컨텍스트 전략 (Context strategies): 쿼리 복잡도에 따라 none/minimal/targeted/full 적용
정확도 향상 (Enhanced accuracy): 97% 이상의 쿼리 카테고리 분류 정확도
대화형 모드 (Interactive Mode):
# 대화형 세션 시작
python -m ocode_python.core.cli
# 대화형 모드 명령어:
...
단일 프롬프트 모드 (Single Prompt Mode):
# 질문하기
python -m ocode_python.core.cli -p "Explain the authentication system"
# 코드 변경 요청
...
모델 지정 (Specify Model):
# 특정 모델 사용
python -m ocode_python.core.cli -m llama3.2 -p "Review this code for security issues"
# 복잡한 작업을 위해 더 큰 모델 사용
...
다양한 출력 형식 (Different Output Formats):
# JSON 출력
python -m ocode_python.core.cli -p "List all functions in main.py" --out json
# 스트리밍 JSON (실시간 처리를 위함)
...
현재 설정 확인 (View current configuration):
python -m ocode_python.core.cli config --list
특정 설정 가져오기 (Get specific setting):
python -m ocode_python.core.cli config --get model
python -m ocode_python.core.cli config --get permissions.allow_file_write
설정 지정 (Set configuration):
python -m ocode_python.core.cli config --set model=llama3.2:latest
python -m ocode_python.core.cli config --set temperature=0.1
python -m ocode_python.core.cli config --set permissions.allow_shell_exec=true
환경 변수 (Environment Variables):
# 모델 선택 (Model selection)
export OCODE_MODEL="codellama:7b"
# Ollama 서버 위치 (Ollama server location)
...
프로젝트별 설정 (.ocode/settings.json):
{
"model": "llama3.2:latest",
"max_tokens": 4096,
...
# 새로운 기능 생성 (Generate new features)
ocode -p "JWT 토큰을 사용한 사용자 인증 시스템을 생성해줘"
# 기존 코드에 기능 추가 (Add functionality to existing code)
...
# 기존 코드 이해 (Understand existing code)
ocode -p "데이터베이스 커넥션 풀링 (database connection pooling)이 어떻게 작동하는지 설명해줘"
# 보안 검토 (Security review)
...
# 테스트 생성 (Generate tests)
ocode -p "UserRepository 클래스에 대한 포괄적인 단위 테스트 (unit tests)를 작성해줘"
# 실패하는 테스트 수정 (Fix failing tests)
...
# 스마트 커밋 (Smart commits)
ocode -p "이 변경 사항들에 대해 설명적인 메시지를 포함한 git 커밋을 생성해줘"
# 코드 리뷰 (Code review)
...
# JSON/YAML 처리 (JSON/YAML processing)
ocode -p "config.json 파일을 파싱하여 모든 데이터베이스 연결 문자열을 추출해줘"
# 데이터 검증 (Data validation)
...
# 프로세스 모니터링 (Process monitoring)
ocode -p "모든 Python 프로세스와 해당 메모리 사용량을 보여줘"
# 성능 분석 (Performance analysis)
...
# 아키텍처 리뷰 (Architecture review)
ocode -p "현재 프로젝트 아키텍처를 분석하고 개선 사항을 제안해줘"
# 의존성 분석 (Dependency analysis)
...
다양한 작업 유형별 설정:
# 간단한 쿼리를 위한 빠른 응답 (Fast responses for simple queries)
export OCODE_MODEL="llama3.2:3b"
# 일반적인 코딩을 위한 균형 잡힌 성능 (Balanced performance for general coding)
...
대규모 코드베이스 최적화:
{
"max_context_files": 50,
"max_tokens": 8192,
...
네트워크 최적화:
# 원격 Ollama 인스턴스용 (For remote Ollama instances)
export OLLAMA_HOST="http://gpu-server:11434"
export OCODE_TIMEOUT=300 # 대규모 요청을 위한 5분 타임아웃 (5 minute timeout for large requests)
제한적 권한 (Restrictive permissions):
{
"permissions": {
"allow_file_read": true,
...
개발 권한 (Development permissions):
{
"permissions": {
"allow_file_read": true,
...
문제: ocode: 명령어를 찾을 수 없음 (Problem: ocode: command not found)
해결책 1: 전체 모듈 경로 사용 (Solution 1: Use the full module path)
# 전체 Python 모듈 경로 사용 (Use the full Python module path)
python -m ocode_python.core.cli --help
# 또는 가상 환경을 사용하는 경우 (Or if using virtual environment)
...
해결책 2: 스크립트 위치 설치 및 확인 (Solution 2: Install and check script location)
# 개발 모드로 설치
pip install -e .
# 스크립트가 설치된 위치 확인
...
해결책 3: pipx 사용 (Solution 3: Use pipx)
pip install pipx
pipx install git+https://github.com/haasonsaas/ocode.git
문제: 임포트 시 ModuleNotFoundError 발생 (Problem: ModuleNotFoundError when importing)
해결책 (Solution):
# 의존성 재설치
pip install -e .
# 또는 강제 재설치
...
문제: 설치 중 권한 거부 (Problem: Permission denied during installation)
해결책 (Solution):
# --user 플래그를 사용하여 sudo 없이 설치
pip install --user ocode
# 또는 가상 환경 (Virtual Environment) 사용
...
문제: Ollama 연결 실패 (Problem: Failed to connect to Ollama)
진단 (Diagnosis):
# Ollama가 실행 중인지 확인
ps aux | grep ollama
# 포트가 열려 있는지 확인
...
해결책 (Solutions):
# Ollama 서비스 시작
ollama serve
# 다른 포트 확인
...
문제: 모델을 찾을 수 없음 오류 (Problem: Model not found errors)
해결책 (Solution):
# 사용 가능한 모델 목록 확인
ollama list
# 필요한 모델 풀 (Pull)
...
문제: 느린 응답 또는 타임아웃 (Problem: Slow responses or timeouts)
해결책 (Solutions):
# 타임아웃 시간 증가
export OCODE_TIMEOUT=600 # 10분
# 더 작은 모델 사용
...
문제: 설정이 로드되지 않음 (Problem: Configuration not loading)
진단 (Diagnosis):
# 설정 파일 위치 확인
ocode config --list
# 파일이 존재하고 읽기 가능한지 확인
...
해결책 (Solutions):
# 프로젝트 재초기화
rm -rf .ocode/
ocode init
...
문제: 권한 거부 오류 (Problem: Permission denied errors)
해결책 (Solution):
# 현재 권한 확인
ocode config --get permissions
# 필요한 권한 활성화
...
문제: 높은 메모리 사용량 (Problem: High memory usage)
해결책 (Solutions):
# 컨텍스트 크기 축소
ocode config --set max_context_files=10
ocode config --set max_tokens=2048
...
문제: 느린 시작 (Problem: Slow startup)
해결책 (Solutions):
# Ollama에서 모델 프리로드 (Preload)
ollama run llama3.2:latest "hello"
# 프로젝트 스캔 범위 축소
...
문제: 연결 거부 (원격 Ollama) (Problem: Connection refused (remote Ollama))
해결책 (Solutions):
# 네트워크 연결 테스트
ping your-ollama-server
telnet your-ollama-server 11434
...
문제: 모델의 응답 품질 저하 (Problem: Model gives poor responses)
해결책 (Solutions):
다른 모델 시도하기
ocode config --set model=codellama:latest
ocode config --set model=llama3.2:70b
...
문제: 모델 응답이 중간에 끊김 (Problem: Model responses cut off)
해결책 (Solutions):
# 토큰 제한 (token limit) 늘리기
ocode config --set max_tokens=8192
# 더 큰 컨텍스트 윈도우 (context window)를 가진 모델 사용
...
상세 로그 (verbose logging) 활성화:
# 환경 변수 (Environment variable)
export OCODE_VERBOSE=true
# CLI 플래그 (flag)
...
시스템 정보 확인:
# OCode 버전 및 설정 (config)
ocode --help
ocode config --list
...
로그 분석 (Log analysis):
# OCode 로그 확인 (구현된 경우)
tail -f ~/.ocode/logs/ocode.log
# 시스템 로그 확인
...
OCode는 확장 가능한 AI 통합을 위해 완전한 MCP 지원을 포함합니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기