이 가이드는 앱을 설치할 권한이 있고 민감한 정보가 없는 본인 소유의 시험 파일을 사용할 수 있는 Mac 사용자를 위한 것입니다. Ollama에 모델 하나를 내려받고, 대화가 유지되는 Open WebUI 브라우저 채팅과 VS Code의 Continue 확장을 같은 실행 서비스에 연결한 뒤 실제 수정 제안을 살펴보고 유지할지 결정합니다. 아래 명령과 확인 절차는 유지관리자의 현행 문서를 따릅니다. BIG CHANGE는 이 구성을 실행하거나 속도, 비용, 네트워크 트래픽을 측정하지 않았습니다.
큰 변화
- 달라지는 점: 내려받은 Ollama 모델은 로컬 API를 통해 브라우저 채팅과 VS Code 편집 도우미에 모두 응답할 수 있습니다. 각 클라이언트의 연결은 따로 확인해야 합니다.
- 중요한 이유: 모델을 한 번 설치하면 같은 Mac에서 대화와 검토한 코드 변경을 지원할 수 있으며 최종 수정 결정은 파일 소유자가 내립니다.
- 주의할 점: 메뉴의 모델 이름만으로 어떤 서버가 응답했는지 알 수 없습니다. 특히 다른 제공업체나 클라우드 기능이 설정되어 있다면 제공업체 연결과 실제 응답을 확인하세요.
1. Mac을 확인하고 모델 선택하기
필요한 것은 Ollama용 macOS 14 이상, Mac용 Docker Desktop, Continue 확장을 설치한 VS Code와 아래의 간단한 JSON 및 파일 확인에 사용할 Python 3입니다. Ollama는 Apple M 계열 CPU와 GPU 실행을 지원하며 Intel Mac에는 문서상 CPU만 기재되어 있습니다. Mac 다운로드 페이지에서 Ollama를 설치해 Applications로 옮기고 실행한 뒤 요청되면 명령줄 연결을 허용하세요. Docker Desktop을 설치해 실행하고 VS Code의 Extensions 보기에서 Continue를 설치하세요. Python 3는 Python.org 에서 설치하세요. python3 를 사용할 수 없는 경우 필요합니다. Mac의 VS Code는 code 를 셸 검색 경로에 자동으로 추가하지 않습니다. Mac 설정 지침에 따라 Cmd+Shift+P로 Command Palette를 열고 Shell Command: Install 'code' command in PATH를 실행한 뒤 Terminal을 다시 시작하세요. 필요한 도구를 사용할 수 있는지 확인합니다.
sw_vers -productVersion
ollama --version
docker version
code --version
python3 --version설치된 버전을 기록하세요. 어느 앱이든 실행되지 않거나 Mac에 모델과 Docker 데이터를 저장할 공간이 없으면 멈추세요. qwen2.5-coder:7b 모델 페이지 에는 현재 다운로드 4.7 GB와 Apache 2.0 라이선스가 표시되어 있습니다. 다운로드 크기는 전체 실행 메모리 요구량이 아닙니다. 이 모델은 구체적인 예이며 모든 Mac에 적합하다는 추천이 아닙니다. 필요하면 문서에서 확인한 더 작은 로컬 모델 태그를 선택하고 아래 모든 명령, 브라우저 선택 및 YAML 필드의 qwen2.5-coder:7b 를 해당 정확한 태그로 바꾸세요. 대체 모델의 라이선스도 확인해야 합니다.
모델을 내려받고 Ollama에 정확한 태그가 표시되는지 확인하세요.
ollama pull qwen2.5-coder:7b
ollama list
curl --fail-with-body --silent --show-error http://127.0.0.1:11434/api/tags | python3 -c 'import json,sys; d=json.load(sys.stdin); print([m["name"] for m in d["models"]])'목록에는 qwen2.5-coder:7b가 있어야 합니다. 이어서 로컬 채팅 API 에 짧은 응답을 요청하세요. 명령은 HTTP 오류에서 실패하며 반환된 모델과 비어 있지 않은 도우미 내용을 검사합니다. 응답의 정확한 문구는 중요하지 않습니다. Ollama 실행 옵션 num_predict 은 이 확인에서 생성하는 토큰을 64개로 제한합니다. 문장이 잘려도 내용이 반환되었음은 확인할 수 있습니다. 빈 응답은 확인 실패이며 원인을 살펴야 합니다.
set -o pipefail
curl --fail-with-body --silent --show-error http://127.0.0.1:11434/api/chat \
-H 'Content-Type: application/json' \
-d '{"model":"qwen2.5-coder:7b","messages":[{"role":"user","content":"Reply with one short sentence about checking a local connection."}],"stream":false,"options":{"num_predict":64}}' \
| python3 -c 'import json,sys; d=json.load(sys.stdin); assert d.get("model")=="qwen2.5-coder:7b",d.get("model"); assert d.get("message",{}).get("content","").strip(); print("Model:",d["model"],"Reply:",d["message"]["content"])'태그가 없으면 다운로드를 마친 뒤 목록을 다시 확인하세요. API에 연결할 수 없다면 Ollama를 실행하고 Mac 서버 로그 를 ~/.ollama/logs/server.log에서 확인하세요. 내려받은 태그와 성공한 로컬 응답이 세 가지 확인 중 첫 번째입니다.
2. 로컬 데이터를 유지하며 Open WebUI 시작하기
이 Open WebUI 빠른 시작 문서 는 계정, 설정, 채팅을 /app/backend/data 에 저장하고 고정된 WEBUI_SECRET_KEY를 요구합니다. 여기서는 안정적인 v0.12.3 릴리스 를 사용하며 계속 바뀌는 main 태그는 사용하지 않습니다. Docker가 Mac 아키텍처에 맞는 이미지를 선택합니다. 내려받은 후 이미지 식별 정보를 기록하세요.
먼저 여기서 사용할 이름을 확인하세요. 이미 있다면 해당 컨테이너나 볼륨을 살펴 이전 설정의 일부인지 판단해야 합니다. 이 명령을 실행하려고 기존 컨테이너를 교체하거나 볼륨을 삭제하지 마세요.
docker ps -a --filter name=^/bc-open-webui$
docker volume inspect bc-open-webui-data최초 설정에서는 두 번째 명령이 볼륨이 없다고 알려도 정상입니다. 다음 단계는 생성한 키를 Mac 계정 아래의 비공개 파일에 보관합니다. 컨테이너를 다시 만들 때 사용할 수 있도록 안전하게 유지하세요. 내용을 저장소에 커밋하거나 붙여 넣거나 공유하지 마세요. 이 인스턴스의 키가 이미 있으면 계속 그 키를 사용하세요.
mkdir -p "$HOME/.config/bc-open-webui"
chmod 700 "$HOME/.config/bc-open-webui"
umask 077
if [ ! -s "$HOME/.config/bc-open-webui/webui-secret" ]; then
openssl rand -hex 32 > "$HOME/.config/bc-open-webui/webui-secret"
fi
chmod 600 "$HOME/.config/bc-open-webui/webui-secret"
export WEBUI_SECRET_KEY="$(cat "$HOME/.config/bc-open-webui/webui-secret")"
docker pull ghcr.io/open-webui/open-webui:v0.12.3
docker image inspect ghcr.io/open-webui/open-webui:v0.12.3 --format '{{json .RepoDigests}}'
docker volume create bc-open-webui-data
docker run -d --name bc-open-webui --restart unless-stopped \
-p 127.0.0.1:3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v bc-open-webui-data:/app/backend/data \
-e WEBUI_SECRET_KEY \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
ghcr.io/open-webui/open-webui:v0.12.3
unset WEBUI_SECRET_KEY
docker ps --filter name=^/bc-open-webui$ --format 'table {{.Names}}\t{{.Image}}\t{{.Ports}}'포트 출력에는 127.0.0.1:3000->8080/tcp가 표시되어야 합니다. 이름 있는 볼륨은 컨테이너를 다시 만들어도 채팅과 설정을 유지합니다. 키는 세션 연속성과 앱의 암호화된 값을 보호하므로 비공개 사본을 보관하세요. Docker 접근 권한이 있는 사람은 컨테이너 설정에서 환경값을 볼 수 있습니다. 이는 1인용 로컬 설정이지 공유 호스트의 비밀 저장소가 아닙니다.
브라우저에서 http://127.0.0.1:3000 를 여세요. 처음에는 관리자 계정을 만듭니다. 아바타 메뉴에서 Settings → Admin → Connections를 열고 Manage Ollama API Connections 를 살펴 http://host.docker.internal:11434로 향하는 연결 하나만 활성화하세요. 이 확인에 필요하지 않은 제공업체 연결은 제거하거나 비활성화하세요. Open WebUI는 여러 Ollama 연결로 요청을 분산할 수 있으므로드롭다운 이름이 일치하는 것만으로는 충분하지 않습니다. 새 채팅에서 qwen2.5-coder:7b 를 선택하고 “로컬 모델이 응답했는지 확인할 수 있는 방법을 하나 알려 주세요”라고 물으세요. 비어 있지 않은 응답이 나타나는지 확인한 뒤 저장된 채팅을 다시 여세요. 선택한 모델과 연결 URL을 기록합니다. 이것이 브라우저 확인이며 특정 정답을 요구하지 않습니다.
페이지가 열리지 않으면 docker logs bc-open-webui 와 포트 바인딩을 확인하세요. 모델 목록이 비어 있다면 Ollama가 여전히 /api/tags에 응답하는지, 저장된 Open WebUI 연결이 맞는지, 이 Docker Desktop 버전이 Mac 호스트 서비스에 도달하는지 확인하세요. host.docker.internal 는 Docker Desktop의 호스트 주소이며 localhost 는 컨테이너 안에서는 컨테이너 자신을 가리킵니다. Ollama는 기본적으로 127.0.0.1에 바인딩되며호스트와 컨테이너 간 전달은 구성에 따라 다를 수 있습니다. 실패한 연결을 설정 성공으로 간주하거나 일반적인 해결책으로 Ollama를 0.0.0.0 에 노출하지 마세요. 진행 전에 보안 정책에 맞춰 로컬 네트워크 경로 문제를 해결하세요. 문제를 조사하는 동안 볼륨과 기존 채팅을 유지해야 합니다.
3. Continue를 같은 Ollama 태그에 연결하기
Continue는 Mac의 VS Code에서 실행되므로 Ollama API 주소는 http://localhost:11434입니다. Continue를 열고 채팅 입력란 오른쪽 위의 구성 드롭다운에서 Local Config옆 톱니바퀴를 클릭하세요. 그러면 ~/.continue/config.yaml가 열립니다. Continue의 현행 참조 문서 는 YAML을 사용합니다. 기존 구성을 복사해 보관하고 필요한 모델이나 규칙을 유지하세요. 새 로컬 구성에 필요한 최소 전체 내용은 다음과 같습니다.
name: Local Ollama check
version: 1.0.0
schema: v1
models:
- name: Qwen2.5 Coder 7B local
provider: ollama
model: qwen2.5-coder:7b
apiBase: http://localhost:11434
roles:
- chat
- edit기존 파일에서는 모델 항목을 models: 목록 아래에 추가하고 기존 최상위 구성을 유지하세요. 저장한 후 Local Config 와 이름 붙인 로컬 모델을 선택하고 Continue Chat에 짧은 질문을 하세요. 내용이 반환되는지 확인합니다. 이는 확장 연결 확인이지 파일 수정은 아닙니다. chat 와 edit 역할은 여기서 사용하는 두 동작을 활성화합니다. 이 절차는 Agent나 자동 완성을 약속하지 않습니다.
직접 소유한 테스트 디렉터리와 독립적으로 확인할 수 있는 단순한 동작의 파일을 만드세요. 명령은 기존 파일이나 원본 사본을 유지합니다. 이름이 이미 사용 중이면 먼저 확인하거나 다른 테스트 디렉터리를 선택하세요.
mkdir -p "$HOME/continue-local-check"
if [ -e "$HOME/continue-local-check/greeting.py" ] || [ -e "$HOME/continue-local-check/greeting.original.py" ]; then
printf '%s\n' 'Scratch file already exists; inspect it or choose a new directory.'
else
cat > "$HOME/continue-local-check/greeting.py" <<'PY'
def greeting(name):
return "Hello, " + name
if __name__ == "__main__":
assert greeting("Ada") == "Hello, Ada"
print(greeting("Ada"))
PY
if python3 "$HOME/continue-local-check/greeting.py"; then
cp "$HOME/continue-local-check/greeting.py" "$HOME/continue-local-check/greeting.original.py"
else
printf '%s\n' 'Original check failed; inspect the file before requesting an edit.'
fi
fi원래 검사는 assertion을 통과한 후 Hello, Ada 를 출력해야 합니다. greeting.py 를 VS Code에서 열고 함수만 선택한 뒤 Cmd+I 를 눌러 Continue Edit를 사용하세요. 반환하는 텍스트는 바꾸지 않고 짧은 docstring만 추가해 달라고 요청하세요. 점차 표시되는 인라인 diff를 greeting.original.py와 비교합니다. 선택 코드의 Edit도 파일 전체를 컨텍스트에 포함할 수 있으므로 민감하지 않은 본인 소유 파일만 쓰세요. 모델은 요청보다 더 많이 수정할 수 있습니다. 바뀐 모든 줄을 확인하고 적절한 제안은 Cmd+Opt+Y로 수락하거나 Cmd+Opt+N으로 거부하세요. Continue에는 전체 수락과 전체 거부도 있지만 작은 diff를 한 번에 하나씩 검토하는 편이 쉽습니다.
수락한 후 파일을 저장하고 다음을 실행하세요.
diff -u "$HOME/continue-local-check/greeting.original.py" "$HOME/continue-local-check/greeting.py" || true
python3 "$HOME/continue-local-check/greeting.py"diff에 의도한 변경만 있는지, 원래 assertion도 여전히 통과하는지 확인하세요. 제안을 거부했다면 원본과 파일이 같은지 확인하고 거부를 기록하세요. 수정을 완료했다고 보고하지 마세요. 파일, diff, 독립적인 Python 검사는 모델의 자기 설명보다 결과를 더 확실히 보여 줍니다.
4. 각 경계를 명확히 유지하기
Ollama, Open WebUI, Continue에는 별도 설정이 있습니다. Ollama 클라우드만 끄려면 Ollama 서버를 실행하는 계정의 ~/.ollama/server.json에 다음 필드를 추가하고 기존 JSON 필드는 유지하세요. 새 파일이라면 전체 내용은 다음과 같습니다.
{
"disable_ollama_cloud": true
}Ollama 앱을 다시 시작하고 서버 로그를 확인하세요.
grep 'Ollama cloud disabled: true' "$HOME/.ollama/logs/server.log"이 Ollama FAQ 에는 해당 로그 줄이 설명되어 있습니다. 없다면 클라우드 기능이 꺼졌다고 판단하기 전에 실행 중인 Mac 계정, JSON, 재시작을 확인하세요. 이 설정은 Open WebUI의 다른 제공업체나 선택적 온라인 기능, Continue의 트래픽을 조사하지 않습니다. Continue의 오프라인 가이드 는 Allow Anonymous Telemetry를 끄고 로컬 모델을 사용한 다음 VS Code를 재시작하라고 안내합니다. 민감한 자료를 쓰기 전에 각 앱의 연결을 확인하세요. 루프백 URL만으로 네트워크 감사를 했다고 볼 수 없습니다.
실제 용도에 맞춰 Docker Desktop 라이선스 를 확인하세요. 개인, 교육, 비상업 오픈소스 용도와 다음 조건을 충족하는 소기업에는 무료입니다. 직원 250명 미만이면서 연 매출 1,000만 달러 미만. 더 큰 조직과 정부의 업무용 사용에는 유료 구독이 필요합니다. 모델의 Apache 2.0 라이선스는 별개입니다. 디스크, 메모리, 다운로드 대역폭, 전기도 고려해야 합니다. 이 가이드에서는 비용이나 성능을 측정하지 않았습니다.
Ollama 터미널과 API만 다루는 더 좁은 절차는 로컬 Ollama 모델을 실행하고 채팅 API 확인하기를 참고하세요. 로컬 Ollama 모델로 Claude Code의 변경 하나를 확인하기 는 다른 코딩 클라이언트를 다룹니다.
출처 및 추가 읽을거리
- Ollama macOS 요구 사항, 채팅 API, 모델 목록 API 및 FAQ: 설치 경계, 확인 가능한 API 필드, 기본 수신 주소, Ollama 전용 클라우드 설정. 2026년 10월 21일 확인.
- Ollama API 사양: 실행 필드
options.num_predict가 짧은 로컬 채팅 확인을 제한합니다. 제한된 응답은 문장 중간에 끝날 수 있습니다. 2026년 10월 21일 확인. - Qwen2.5-Coder 7B 모델 카드: 예시 태그, 명시된 다운로드 크기, 모델 라이선스. 내려받기 전에 현재 태그 정보와 Mac 가용 자원을 확인하세요. 2026년 10월 21일 확인.
- Open WebUI 빠른 시작, Ollama 연결 가이드 및 v0.12.3 릴리스: 컨테이너 저장소와 키, 제공업체 설정, 안정 버전 식별 정보. 설정 절차이지 이 Mac이 실제로 연결되었다는 증거는 아닙니다. 2026년 10월 21일 확인.
- Continue 구성, YAML 참조, Edit 빠른 시작 및 오프라인 가이드: 현재 파일 경로와 키, 편집 제어, 원격 측정 설정. 2026년 10월 21일 확인.
- Docker Desktop 네트워킹, Mac 설치 및 라이선스: 호스트 주소, 설치, 업무 사용 경계. 조직에 적용되는 현행 조건을 확인하세요. 2026년 10월 21일 확인.
- VS Code Mac 설정 및 Python 3 다운로드: 선택적인 셸 명령 설치와 검사에 쓰는 인터프리터. 2026년 10월 21일 확인.



