나의 맥미니에 Gemma3 설치하고 원격 접속하기

문제 상황

개발자라면 이런 경험이 있을 것입니다.

  • OpenAI API가 비싸다 (요청량 많으면 월 수백 달러)
  • 민감한 데이터를 클라우드에 올리고 싶지 않다
  • 네트워크 없이도 로컬에서 빠르게 실행하고 싶다

하지만 로컬에서 AI 모델을 실행하면 또 다른 문제가 생깁니다:

  • Windows/Linux 서버에서 접속할 수 없다
  • 출장 중이나 팀원과 공유하기 어렵다
  • 스마트폰이나 태블릿에서도 접근하고 싶은데…

해결책? Mac의 로컬 Gemma 모델을 Vercel 웹앱으로 만들고, Cloudflare Tunnel로 터널링하면 됩니다. 오늘 그 전체 과정을 정리했습니다.


기술 선택: 왜 이 스택인가?

선택지추천이유
모델 Gemma vs GPT✅ Gemma 3 4B오픈소스, 로컬 실행 가능, 가볍고 빠름
런타임✅ Ollama원클릭 설치, CORS 처리 간단
프론트엔드✅ React + Vite스트리밍 응답 처리 쉬움, 번들 크기 작음
배포✅ VercelNext.js/SPA 친화적, 콜드스타트 빠름
터널링✅ Cloudflarengrok보다 API 친화적, 계정 불필요, 빠름

3단계로 구현하기

📦 Step 1: Mac에 Gemma 설치 (10분)

먼저 Ollama를 설치합니다.

# Ollama 다운로드 (https://ollama.com)
# App을 실행한 후 터미널에서:

ollama run gemma3:4b

첫 실행 시 모델 다운로드(약 3GB)가 시작됩니다. 기다리세요. ☕

pulling manifest
pulling 8935d9cb4c8e
100% ███████████████████████████████ 3.6 GB

success

이제 http://localhost:11434에서 Ollama API가 동작합니다.

🎨 Step 2: React 웹앱 만들기 (15분)

GitHub 리포지토리를 클론합니다.

git clone https://github.com/junsang-dong/gemma-remote.git
cd gemma-remote

npm install
npm run dev

http://localhost:5173에서 채팅 UI가 뜹니다.

Vite 프록시 덕분에 CORS 문제는 자동 해결됩니다. 아무것도 할 필요 없습니다.

로컬에서 테스트하세요:

  1. 텍스트 입력
  2. Enter 누르기
  3. 실시간으로 토큰 단위 응답이 나옵니다 (ChatGPT 스타일)
사용자: 한국 주식 시장 전망을 3줄로
Gemma:
현재 한국 주식 시장은 금리와 지정학적 리스크에 민감합니다.
기술주 중심의 수익성 개선이 긍정적 신호입니다.
단기 변동성은 크지만 중장기 가치 투자 관점에서는 매력적입니다.

🚀 Step 3: Vercel 배포 + 원격 접속 (20분)

3-1. Vercel에 배포하기

npm install -g vercel
vercel --prod

배포가 완료되면:

✓ Production: https://local-ollama-gemma.vercel.app [copied to clipboard]

이 URL은 아직 동작하지 않습니다. 로컬 Ollama에 접속할 방법이 없거든요.

3-2. Cloudflare Tunnel로 로컬 Ollama 외부 노출

첫 번째 문제: CORS + OLLAMA_HOST 설정

기존 Ollama를 종료하고 다시 실행합니다:

pkill ollama

# ⚠️ 중요: 0.0.0.0으로 설정해야 외부 접속 가능
OLLAMA_HOST=0.0.0.0:11434 OLLAMA_ORIGINS=* ollama serve

터미널에 이렇게 나오면 성공:

Listening on [::]:11434

두 번째 문제: 터널 설정

새 터미널 탭을 열고:

brew install cloudflare/cloudflare/cloudflared

# Quick Tunnel 실행 (계정 불필요)
cloudflared tunnel --url http://localhost:11434

출력:

https://xxxx-xxxx-xxxx-xxxx.trycloudflare.com

이 URL을 복사하세요. (재실행할 때마다 바뀝니다)

3-3. 웹앱에 API URL 등록

  1. https://local-ollama-gemma.vercel.app 접속
  2. 좌측 하단 ⚙ 설정 클릭
  3. Ollama API URL 입력: https://xxxx-xxxx-xxxx-xxxx.trycloudflare.com
  4. 저장하고 상단에 모델 목록이 뜨면 연결 성공

이제 어디서든 — 카페에서, 출장지에서, 스마트폰에서도 이 웹앱으로 Mac의 Gemma에 접속할 수 있습니다.


학습 포인트

1. Cloudflare Tunnel vs ngrok

ngrok 무료 버전은 axios.get() 등 API 호출에서 403으로 차단합니다. Cloudflare는 막지 않습니다. 개발자라면 Cloudflare를 쓰세요.

2. OLLAMA_HOST=0.0.0.0의 필수성

기본값(127.0.0.1)으로 실행하면 외부 터널도 접속 불가입니다. 이걸 모르면 2시간을 헤맙니다. 😅

3. 로컬스토리지로 API URL 저장

설정값을 브라우저 로컬스토리지에 저장하므로, URL이 바뀌어도 매번 입력할 필요 없습니다.

4. 스트리밍 응답의 가치

fetch + ReadableStream으로 토큰 단위 응답을 처리하면 UX가 ChatGPT처럼 느껴집니다. 사용자 경험이 완전히 달라집니다.


이제 뭘 할까?

이 기초 위에서 할 수 있는 것들:

포트폴리오: GitHub 공개 + README 정리 → “로컬 AI 앱 경험” 강력함
팀 협업: Ollama를 NAS나 Linux 서버에서 실행, 팀원 공유
Product Hunt: “로컬 AI + 무료 원격 접속” = 개발자들이 좋아하는 조합
사이드 프로젝트 확장: 여기에 RAG 추가 → 개인 지식베이스 채팅


마치며

API 요금 걱정 없이 로컬 AI를 쓰되, 어디서든 접근할 수 있다는 게 핵심입니다.

비용: 거의 0원 (Vercel 무료 + Cloudflare 무료)
성능: 로컬이라 빠름 (네트워크 지연 최소)
프라이버시: 모든 데이터가 Mac에 머무름

처음 30분이 가장 어렵지만, 한 번 설정하면 다시는 건드릴 필요 없습니다.

지금 바로 시작하세요. 그리고 만든 것을 공유하세요. 🚀


전체 코드: https://github.com/junsang-dong/gemma-remote
라이브 데모: https://local-ollama-gemma.vercel.app


이 글이 도움되었다면, 별 ⭐ 하나로 응원해주세요.

답글 남기기