내 컴퓨터를 AI 서버로 만들기: Ollama 설치부터 문제 해결까지 종합 가이드
2024년 7월 29일, Gemini CLI와 함께
시작하며: 왜 내 컴퓨터에 AI 서버를 만들까?
클라우드 기반의 AI 모델을 사용하는 것은 편리하지만, 데이터 프라이버시, API 비용, 인터넷 연결의 제약 등 여러 고민을 낳습니다. 만약 내 개인 컴퓨터를 직접 생성형 AI 모델 서버로 만들 수 있다면 어떨까요?
이 글은 Gemini CLI와 한 사용자가 함께 겪은 실제 경험을 바탕으로, macOS 환경에서 Ollama를 사용하여 개인 컴퓨터를 경량 AI 모델 서버로 구축하는 전 과정을 상세히 기록한 가이드입니다. 설치 과정에서 마주칠 수 있는 다양한 오류와 그 해결 과정을 포함하고 있어, 처음 도전하는 분들에게 훌륭한 길잡이가 될 것입니다.
1. 최종 목표
- Ollama 설치: 로컬 AI 모델 구동을 위한 서버 애플리케이션을 설치한다.
- 모델 다운로드: 경량 AI 모델(예: Llama 3)을 내 컴퓨터에 다운로드한다.
- 서버 실행 및 테스트: 로컬 서버를 실행하고, API 요청에 정상적으로 응답하는지 확인한다.
- 영구적인 사용 환경 구축: 터미널에서
ollama명령어를 쉽게 사용할 수 있도록 설정한다.
2. Ollama 설치: 첫 번째 시도와 교훈
가장 먼저 시도한 방법은 macOS의 대표적인 패키지 매니저인 Homebrew를 이용한 설치였습니다.
- 시도한 명령어:
brew install ollama - 결과: 실패
- 오류 메시지:
Error: You are using macOS 12. We (and Apple) do not provide support for this old version. - 원인 분석: Homebrew가 구버전 macOS(Monterey, 12)에 대한 소스 코드 빌드를 공식적으로 지원하지 않아, 컴파일에 필요한 파일을 찾지 못해 발생한 문제였습니다.
교훈 1: Homebrew와 같은 도구는 편리하지만, 운영체제 버전에 따라 예상치 못한 문제를 겪을 수 있습니다. 항상 공식 홈페이지의 설치 방법을 먼저 확인하는 것이 좋습니다.
두 번째 시도는 공식 홈페이지에서 안내하는 curl 스크립트였습니다.
- 시도한 명령어:
curl -fsSL https://ollama.com/install.sh | sh - 결과: 실패
- 오류 메시지:
ERROR: This script is intended to run on Linux only. - 원인 분석: 무심코 Linux 용 설치 스크립트를 macOS에서 실행하여 발생한 문제였습니다.
교훈 2: 운영체제에 맞는 설치 방법을 정확히 사용해야 합니다.
가장 확실한 설치 방법 (macOS)
결국 가장 안정적인 방법은 GUI를 통한 수동 설치였습니다.
- 웹 브라우저에서 Ollama 다운로드 페이지에 접속합니다.
- “Download for macOS” 버튼을 클릭하여
Ollama-darwin.zip파일을 다운로드합니다. - 압축을 풀고, Ollama.app을 응용 프로그램(Applications) 폴더로 드래그하여 설치를 완료합니다.
3. 실행 및 문제 해결: “command not found”와의 싸움
설치 후, ollama run phi-3 명령어를 실행했지만 bash: ollama: command not found 오류가 발생했습니다. 이는 터미널이 ollama라는 명령어를 어디서 찾아야 할지 모른다는 의미입니다.
문제 해결 과정
-
터미널 재시작: 가장 먼저 시도한 것은 터미널을 완전히 종료하고 새로 시작하는 것이었습니다. 설치 과정에서 변경된 시스템
PATH를 적용하기 위함이었지만, 문제 해결에는 실패했습니다. -
실행 파일 경로 직접 탐색:
ollama실행 파일의 실제 위치를 찾아 직접 실행하는 전략으로 전환했습니다.- 1차 시도:
/usr/local/bin/ollama run phi-3→ 실패 (No such file or directory) - 2차 시도:
/Applications/Ollama.app/Contents/Resources/ollama run phi-3→ 성공! (오류 변경)
두 번째 시도에서
command not found가 아닌ollama server not responding이라는 새로운 오류를 만났습니다. 이것은 실행 파일의 정확한 위치를 찾았다는 중요한 단서였습니다. - 1차 시도:
-
서버 실행 문제 해결:
server not responding오류는 Ollama 앱은 설치되었지만, 실제 요청을 처리하는 백그라운드 서버 프로세스가 실행되지 않았다는 의미입니다.- 해결책 1 (GUI): 응용 프로그램 폴더에서
Ollama.app을 직접 실행하여 메뉴 막대에 라마 아이콘이 나타나는지 확인합니다. - 해결책 2 (CLI): 만약 GUI로 실행해도 서버가 불안정하다면, 터미널에서 직접 서버를 실행할 수 있습니다.
&를 붙여 백그라운드에서 실행하는 것이 중요합니다./Applications/Ollama.app/Contents/Resources/ollama serve &
이 명령어를 실행하자, 서버가 정상적으로 시작되었습니다.
- 해결책 1 (GUI): 응용 프로그램 폴더에서
-
서버 응답 확인: 서버가 정말 살아있는지 확인하기 위해
list명령어를 사용했습니다./Applications/Ollama.app/Contents/Resources/ollama list그 결과, 비어있는 모델 목록이 정상적으로 출력되며 서버가 응답함을 확인했습니다.
4. 모델 다운로드 및 최종 테스트
이제 서버가 준비되었으니, 실제 모델을 다운로드하여 서버를 최종 테스트합니다.
-
모델 다운로드:
phi-3모델은 저장소 문제로 실패하여, 가장 안정적인llama3모델을 다운로드했습니다./Applications/Ollama.app/Contents/Resources/ollama run llama3이 명령어를 실행하면
llama3모델(약 4.7GB)이 다운로드되고, 완료되면 자동으로 대화 모드로 진입합니다. -
대화형 테스트:
ollama run llama3명령이 성공하면 터미널에>>> Send a message프롬프트가 나타납니다. 이곳에 직접 메시지를 입력하여 모델과 대화하며 테스트할 수 있습니다. (종료는/bye) -
API 테스트: 서버의 핵심 기능인 API를 테스트합니다.
curl을 사용하여 서버에 직접 질문을 던져봅니다.curl http://localhost:11434/api/generate -d '{ "model": "llama3", "prompt": "대한민국의 수도는 어디야?", "stream": false }'성공 응답 (JSON):
{ "model": "llama3", "response": "😊 The capital of South Korea is Seoul (, Seoul).", "done": true, ... }response필드에 정확한 답변이 포함된 것을 통해, 서버가 완벽하게 작동함을 최종 확인했습니다.
5. 최종 사용 환경 구축
모든 테스트가 끝났습니다. 이제 편리하게 사용할 일만 남았습니다.
1. 영구적인 단축 명령어(alias) 설정
매번 긴 경로를 입력하지 않도록, 셸 설정 파일에 ollama 단축키를 등록했습니다. 이로써 터미널 어디서든 ollama만 입력하면 됩니다.
- 실행된 명령어:
echo '\n# Ollama alias for easy access\nalias ollama="/Applications/Ollama.app/Contents/Resources/ollama"' >> ~/.zshrc - 적용 방법: 터미널을 새로 시작하거나
source ~/.zshrc명령어를 실행합니다.
2. 나만의 AI 서버 활용법
- 직접 대화:
ollama run [모델이름] - 설치된 모델 확인:
ollama list - API 연동:
http://localhost:11434엔드포인트를 사용하여 나만의 애플리케이션을 만들어보세요.
6. 외부에서 Ollama 서버 접근하기 (Ngrok 활용)
로컬에서만 접근 가능했던 Ollama 서버를 ngrok을 사용하여 외부 네트워크에서도 접근할 수 있도록 설정할 수 있습니다. 이는 모바일 기기나 다른 외부 컴퓨터에서 로컬 Ollama 서버를 활용할 때 유용합니다.
1. Ollama 서버 외부 접속 허용 설정
ngrok을 사용하기 전에, Ollama 서버가 모든 네트워크 인터페이스에서의 접속을 허용하도록 설정해야 합니다. 기본적으로 Ollama는 보안을 위해 localhost에서의 요청만 허용합니다.
- 기존 Ollama 서버 종료:
pkill -f ollama - 외부 접속 허용 모드로 Ollama 서버 재시작:
이 명령어를 실행하면 Ollama 서버가OLLAMA_HOST=0.0.0.0 /Applications/Ollama.app/Contents/Resources/ollama serve &0.0.0.0:11434에서 모든 네트워크 요청을 수신할 준비를 합니다.
2. Ngrok 설치 및 인증
ngrok이 설치되어 있지 않다면 Homebrew를 통해 설치합니다.
- Ngrok 설치 (설치되어 있지 않다면):
brew install ngrok - Ngrok 인증 토큰 설정:
ngrok서비스를 사용하려면 계정 생성 후 발급받은 인증 토큰을 등록해야 합니다.- ngrok 대시보드에서 본인의 인증 토큰을 확인합니다.
- 터미널에 다음 명령어를 실행하여 토큰을 등록합니다. (
<YOUR_AUTHTOKEN>부분을 실제 토큰으로 대체)ngrok config add-authtoken <YOUR_AUTHTOKEN>
3. Ngrok 터널 시작
인증이 완료되면, ngrok을 사용하여 로컬 Ollama 서버 포트(11434)를 외부 인터넷에 노출시킵니다.
- Ngrok 터널 실행:
이 명령어를 백그라운드(ngrok http 11434 &&)로 실행하면 터미널을 점유하지 않고ngrok터널이 생성됩니다.
4. 공개 URL 확인
ngrok 터널이 생성되면, 외부에서 접근 가능한 공개 URL이 발급됩니다. 이 URL은 ngrok API를 통해 확인할 수 있습니다.
- 공개 URL 조회:
이 명령어를 실행하면curl -s http://localhost:4040/api/tunnels | jq -r '.tunnels[0].public_url'https://<랜덤문자열>.ngrok-free.app형태의 URL이 출력됩니다. 이 URL이 외부에서 Ollama 서버에 접근할 수 있는 주소입니다.
5. 외부에서 Ollama 서버 테스트
발급받은 ngrok URL을 사용하여 외부 네트워크(예: 스마트폰, 다른 컴퓨터)에서 Ollama 서버에 API 요청을 보내 테스트할 수 있습니다.
- 외부
curl테스트 예시: 정상적으로 응답이 온다면, 외부에서 Ollama 서버 접근 설정이 완료된 것입니다.curl https://<ngrok_public_url>/api/generate -d '{ "model": "llama3", "prompt": "대한민국의 수도는 어디야?", "stream": false }'
맺음말
수많은 오류와의 사투 끝에, 우리는 마침내 개인 컴퓨터 위에 온전히 동작하는 AI 모델 서버를 구축했습니다. 이 과정은 단순히 도구를 설치하는 것을 넘어, 문제의 원인을 분석하고, 가설을 세우고, 검증하며 해결해 나가는 값진 경험이었습니다.
이 가이드가 여러분만의 로컬 AI 서버를 구축하는 데 도움이 되기를 바랍니다. 이제 여러분의 컴퓨터에서, 여러분의 데이터로, 여러분만의 AI를 마음껏 활용해 보세요.