메뉴 건너뛰기

SayClub.org

AI

작성 기준: macOS (Apple Silicon) + Ollama GUI 앱 환경
작성일: 2026-04-19  |  환경: Mac Studio M4 Max, macOS Sequoia, Ollama 최신 버전

1. 왜 선행 설정이 필요한가

macOS에서 Ollama를 기본 설정 그대로 실행하면 아래 문제가 발생합니다.

  • 모델이 5분 후 자동 언로드되어 다음 요청 시 다시 로딩 시간이 발생
  • 동시 요청 수가 자동으로 결정되어 대형 모델(30B+) 사용 시 메모리 초과 위험
  • Apple Silicon GPU 가속이 명시되지 않아 백엔드가 불명확하게 동작할 수 있음

아래 3가지 환경변수를 사전에 설정해 두면 이 문제를 모두 해소할 수 있습니다.

2. 설정해야 하는 환경변수 3가지

변수명 권장값 설명
OLLAMA_KEEP_ALIVE -1 모델을 메모리에 영구 유지 (자동 언로드 비활성화)
OLLAMA_NUM_PARALLEL 1 동시 처리 요청 수 제한 (메모리 안정성 확보)
OLLAMA_BACKEND mlx Apple Silicon GPU(Metal) 가속 백엔드 명시

3. 방법 1 — .zshrc에 추가

터미널에서 ollama run 등 CLI를 직접 사용하는 경우에 적용됩니다.

~/.zshrc 에 아래 3줄 추가

export OLLAMA_KEEP_ALIVE=-1
export OLLAMA_NUM_PARALLEL=1
export OLLAMA_BACKEND=mlx

적용

source ~/.zshrc

⚠️ .zshrc는 Ollama GUI 앱에 적용되지 않습니다.
Ollama macOS 앱은 터미널 셸이 아닌 launchd(시스템 데몬)가 실행합니다. launchd는 .zshrc를 읽지 않으므로, export 선언이 Ollama 앱 프로세스에 전달되지 않습니다. 메뉴바 앱을 사용하는 경우 반드시 아래 방법 2를 함께 적용해야 합니다.

실행 방식 .zshrc 적용 여부
터미널에서 ollama serve 직접 실행 ✅ 적용됨
Ollama macOS 앱 (메뉴바 아이콘) ❌ 적용 안 됨

4. 방법 2 — macOS LaunchAgents 등록 (재부팅 후에도 유지)

~/Library/LaunchAgents/에 plist 파일을 만들어, 로그인 시 자동으로 launchctl setenv를 실행시키는 방식입니다. Ollama GUI 앱에도 환경변수가 전달되며, 재부팅 후에도 유지됩니다.

plist 파일 생성

아래 명령어를 터미널에 그대로 붙여넣어 실행합니다.

mkdir -p ~/Library/LaunchAgents

cat > ~/Library/LaunchAgents/local.ollama.env.plist <<'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>local.ollama.env</string>

  <key>ProgramArguments</key>
  <array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>
      /bin/launchctl setenv OLLAMA_KEEP_ALIVE -1;
      /bin/launchctl setenv OLLAMA_NUM_PARALLEL 1;
      /bin/launchctl setenv OLLAMA_BACKEND mlx;
    </string>
  </array>

  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>
PLIST

plist 검증 및 로드

# plist 문법 검증
plutil -lint ~/Library/LaunchAgents/local.ollama.env.plist

# 로드 (기존 로드된 경우 해제 후 재로드)
launchctl unload ~/Library/LaunchAgents/local.ollama.env.plist 2>/dev/null
launchctl load ~/Library/LaunchAgents/local.ollama.env.plist

적용 확인

launchctl getenv OLLAMA_KEEP_ALIVE
launchctl getenv OLLAMA_NUM_PARALLEL
launchctl getenv OLLAMA_BACKEND

정상 적용 시 아래와 같이 출력됩니다:

% launchctl getenv OLLAMA_KEEP_ALIVE
-1
% launchctl getenv OLLAMA_NUM_PARALLEL
1
% launchctl getenv OLLAMA_BACKEND
mlx

💡 값이 정상 출력되었다면 Ollama 앱을 완전히 종료 후 다시 실행해야 실제 프로세스에 반영됩니다.
macOS 메뉴바 Ollama 아이콘 → Quit Ollama → 앱 다시 실행

5. 최종 동작 확인

Ollama 재실행 후 아래 명령어로 모델 상태를 확인합니다.

ollama ps

UNTIL 컬럼이 Forever로 표시되면 OLLAMA_KEEP_ALIVE=-1 이 정상 적용된 것입니다.

6. 실행 순서 문제 — 환경변수가 간헐적으로 적용 안 되는 경우

LaunchAgents는 launchd가 로그인 시 등록된 plist를 모두 실행하지만, 실행 순서는 보장되지 않습니다.

Ollama가 로그인 항목(Login Items)에 등록되어 있거나 자동 시작이 설정된 경우, 환경변수 주입 스크립트보다 Ollama 앱이 먼저 뜨는 타이밍이 발생할 수 있습니다. 이 경우 Ollama는 환경변수가 없는 상태로 이미 실행된 뒤라서 설정이 반영되지 않습니다.

⚠️ 증상: 재부팅 후 launchctl getenv 결과는 정상이지만, ollama ps에서 UNTIL이 Forever가 아닌 경우 — Ollama가 먼저 뜬 것입니다.

해결 방법 — 더미 요청으로 프로세스를 깨운 뒤 재시작하기

환경변수를 주입한 뒤 Ollama를 실행하고, 의미 없는 더미 요청을 한 번 전송해 프로세스가 새 환경을 읽도록 강제로 깨웁니다. 그런 다음 완전히 종료 후 재시작하면 OLLAMA_KEEP_ALIVE=-1이 정상 반영됩니다. 기존 plist를 아래 내용으로 교체합니다.

cat > ~/Library/LaunchAgents/local.ollama.env.plist <<'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>local.ollama.env</string>

  <key>ProgramArguments</key>
  <array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>
      /bin/launchctl setenv OLLAMA_KEEP_ALIVE -1;
      /bin/launchctl setenv OLLAMA_NUM_PARALLEL 1;
      /bin/launchctl setenv OLLAMA_BACKEND mlx;
      sleep 3;
      open -a Ollama;
      sleep 5;
      curl -s http://127.0.0.1:11434/api/generate -d '{"model":"qwen3.6:35b","prompt":"hi","keep_alive":-1,"stream":false}' > /dev/null 2>&1; # 실제 사용하는 모델명으로 변경
      sleep 2;
      osascript -e 'quit app "Ollama"';
      sleep 3;
      open -a Ollama;
    </string>
  </array>

  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>
PLIST

변경 후 재로드합니다:

launchctl unload ~/Library/LaunchAgents/local.ollama.env.plist 2>/dev/null
launchctl load ~/Library/LaunchAgents/local.ollama.env.plist

💡 이 방식의 동작 순서:
① 로그인 시 plist 스크립트 실행
② 환경변수 3개 즉시 주입 (launchctl setenv)
③ 3초 대기 후 Ollama 앱 실행
④ 5초 대기 (Ollama 완전 기동 확보)
⑤ 더미 요청 전송 — 프로세스가 새 환경변수를 읽도록 강제로 초기화
⑥ Ollama 정상 종료 후 3초 대기
⑦ Ollama 재실행 — 이 시점부터 KEEP_ALIVE=-1 완전 반영

주의: 이 방식을 사용하는 경우 macOS 로그인 항목(시스템 설정 → 일반 → 로그인 항목)에서 Ollama의 자동 시작을 반드시 비활성화해야 합니다. 그대로 두면 Ollama가 두 번 실행됩니다.

7. 두 가지 방법 비교

항목 .zshrc LaunchAgents plist
터미널 CLI 적용 ✅ ✅
Ollama GUI 앱 적용 ❌ ✅
재부팅 후 유지 ✅ (셸 기준) ✅
설정 복잡도 낮음 중간

✅ Ollama macOS 앱을 사용하는 경우에는 .zshrc 설정만으로는 부족합니다. LaunchAgents 방식을 반드시 병행하십시오.

번호 제목 글쓴이 날짜 조회 수
공지 퍼플렉시티용 글 작성 프롬프트 미르다테 2026.04.29 24
공지 SayClub 스타일 포스팅 생성 프롬프트 미르다테 2026.04.29 26
27 클로드 코드(Claude Code) 입문: 설치부터 LLM·Agent 바이브 코딩까지 미르다테 2026.05.04 8
26 Claude로 일하는 법 — 업무 활용 가이드 기본편 미르다테 2026.05.04 7
25 허깅페이스 사이트 사용방법 및 모델명 구분 방법 완전 실무 백서 미르다테 2026.04.29 14
24 GitHub 개념, 명령어 사용법, 협업 흐름, 실전 예제 초정밀 가이드 미르다테 2026.04.29 10
23 Hermes Agent 설치 및 명령어 운용 백서 미르다테 2026.04.29 35
22 Hermes 에러 로그 조치 미르다테 2026.04.29 17
21 힉스필드(동영상 생성 AI) 미르다테 2026.04.27 8
20 허깅페이스 AI모델 추천(https://huggingface.co/majentik) 미르다테 2026.04.27 15
19 Hermes Agent: 성장하는 AI 에이전트 실전 가이드 미르다테 2026.04.27 11
18 Unsloth Qwen 3.6 미르다테 2026.04.22 8
17 openclaw ollama/qwen3.6:35b-a3b-q4_K_M 모델 최적화 설정값 미르다테 2026.04.20 9
16 Mac Studio M4 Max + qwen3.6-35b OpenClaw 최적화 설정 공유 미르다테 2026.04.19 18
» macOS에서 Ollama 구동 전 반드시 설정해야 하는 환경변수 3가지 미르다테 2026.04.19 27
14 April 2026 TLDR Setup for Ollama + Gemma 4 on a Mac mini (Apple Silicon) 미르다테 2026.04.06 14
13 Ollama는 현재 Apple Silicon 기반 MLX로 구동되는 프리뷰 버전으로 제공됩니다. 미르다테 2026.03.31 9
12 OpenClaw (구 Moltbot, 구 Clawdbot) 리뷰(10) : OpenClaw 에이전트를 위한 보안 설정 : 당신의 AI 에이전트가 해킹당하지 않으려면? file 미르다테 2026.02.23 15
11 OpenClaw (구 Moltbot, 구 Clawdbot) 리뷰(9) : OpenClaw가 똑똑한 이유는 'Pi' 때문? (OpenClaw의 심장, Pi: Self-extending 아키텍처 살펴보기) file 미르다테 2026.02.23 12
10 OpenClaw (구 Moltbot, 구 Clawdbot) 리뷰(8) : ClawHub 스킬 마켓플레이스와 Moltbook AI 소셜 네트워크, 그리고 보안(ClawHavoc 사태와 Moltbook 보안 침해) file 미르다테 2026.02.23 14
9 OpenClaw (구 Moltbot, 구 Clawdbot) 리뷰(7) : OpenClaw 24시간 가동하기 - 잠들지 않는 나만의 자비스 만들기()홈랩부터 클라우드(VPS)까지 file 미르다테 2026.02.23 15
8 OpenClaw (구 Moltbot, 구 Clawdbot) 리뷰(6) : Ollama 연동 가이드 - 로컬 LLM Ollama로 무료 AI 비서 만들기 file 미르다테 2026.02.23 22
위로