최근 Cursor, Claude Code, GPT, Gemini 등 다양한 AI 도구를 사용하면서도 인터넷 연결 없이 사용할 수 있는 로컬 LLM 환경에 대한 관심이 높아지고 있다. 이번 글에서는 MacBook Pro M5 32GB 환경에서 Qwen3 8B와 Gemma 3 4B를 설치하고 Open WebUI를 이용하여 ChatGPT처럼 사용하는 방법을 정리한다.
구성 목표
다음과 같은 환경을 구축하는 것을 목표로 한다.
메인 모델 - Qwen3 8B 보조 모델 - Gemma 3 4B 모델 실행 - Ollama 웹 UI - Open WebUI 개발 도구 - IntelliJ - VSCode - Cursor - Claude Code
1. Ollama 설치
먼저 Ollama를 설치한다.
brew install ollama
설치 확인
ollama --version
2. Ollama 실행
ollama serve
정상적으로 실행되면 Ollama API가 다음 포트에서 동작한다.
http://localhost:11434
3. Qwen3 8B 설치
ollama pull qwen3:8b
설치 확인
ollama list
예상 결과
NAME qwen3:8b
4. Gemma 3 4B 설치
ollama pull gemma3:4b
설치 확인
ollama list
예상 결과
NAME qwen3:8b gemma3:4b
5. Docker 설치
Open WebUI를 사용하기 위해 Docker Desktop을 설치한다.
Docker 최초 실행 시 아래와 같은 로그인 화면이 표시될 수 있다.
Welcome to Docker
이 화면에서는 로그인하지 않아도 된다.
우측 상단 Skip 클릭
Open WebUI 사용에는 Docker Hub 계정이 필수가 아니다.
6. Docker 정상 동작 확인
docker --version
docker ps
정상이라면 빈 컨테이너 목록이 출력된다.
7. Open WebUI 설치
React 개발 서버는 보통 3000 포트를 사용하고, Spring Boot는 8080 포트를 사용하므로 포트 충돌을 피하기 위해 Open WebUI는 13000 포트를 사용한다.
docker run -d \ --name open-webui \ -p 13000:8080 \ -v open-webui:/app/backend/data \ ghcr.io/open-webui/open-webui:main
8. Docker 포트 매핑 이해하기
다음 설정은 매우 중요하다.
-p 13000:8080
의미는 다음과 같다.
외부 포트 : 13000 내부 포트 : 8080
즉 브라우저에서는 다음 주소로 접속한다.
http://localhost:13000
실제 Open WebUI 컨테이너 내부에서는 8080 포트로 서비스가 동작한다.
구조를 그림으로 표현하면 다음과 같다.
브라우저 ↓ localhost:13000 ↓ Docker ↓ Open WebUI (8080)
9. Open WebUI 접속
브라우저에서 접속한다.
http://localhost:13000
최초 접속 시 관리자 계정을 생성한다.
10. Ollama 연동
Open WebUI는 자동으로 Ollama를 감지하는 경우가 많다.
수동 설정 시 다음 주소를 사용한다.
http://host.docker.internal:11434
또는
http://localhost:11434
11. 모델 사용
연동이 완료되면 모델 목록에서 다음 모델을 선택할 수 있다.
Qwen3 8B Gemma 3 4B
권장 사용 방식은 다음과 같다.
Qwen3 8B - Java - Spring Boot - JPA - jOOQ - React - Next.js - Python - SQL - 아키텍처 검토 Gemma 3 4B - 문서 요약 - 번역 - 로그 해석 - 블로그 초안
12. 최종 권장 구성
MacBook Pro M5 32GB Ollama ├─ Qwen3 8B └─ Gemma 3 4B Open WebUI └─ localhost:13000 Ollama API └─ localhost:11434 React └─ localhost:3000 Spring Boot └─ localhost:8080
결론
Mac M5 32GB 환경에서는 Qwen3 8B를 메인 모델로 사용하고 Gemma 3 4B를 보조 모델로 사용하는 구성이 가장 균형이 좋다. Open WebUI를 함께 사용하면 ChatGPT와 유사한 인터페이스로 로컬 LLM을 사용할 수 있으며, 인터넷 연결 없이도 코드 분석, 문서 작성, 로그 분석 등의 작업을 수행할 수 있다.