M4 Pro 맥 미니로 구축한 로컬 LLM 서버
48GB RAM을 갖춘 M4 Pro 맥 미니에서 Qwen3.6-35B와 Gemma-4 모델을 oMLX 추론 서버로 구동하고, Tailscale로 아이폰·맥북을 연결해 에이전트 백엔드로 활용하는 방법을 소개합니다. 클라우드 API의 가격 변동, 데이터 프라이버시, AI 주권 리스크를 피하고 비용 예측성과 지연 감소, 오프라인 사용 등의 실용적 이점을 얻을 수 있다는 것이 핵심입니다. GPT-5나 Claude Opus가 필요한 나머지 20%를 제외한 일상 요청의 80%를 무료로 처리하는 것이 목적입니다.
저는 RAM 48GB의 M4 Pro 맥 미니에서 로컬 LLM 서버를 운영합니다. Hermes 에이전트 백엔드부터 폰에서 빠른 채팅 질의까지 모든 것을 처리합니다. 전체 설정에는 약 30분이 걸립니다. 사용한 스택은 다음과 같습니다:
Qwen3.6-35B-A3B-OptiQ-4bit: 추론이나 깊이가 필요한 작업을 위한 메인 모델 Gemma-4-E4B-it-OptiQ-4bit: 간단한 채팅, 포맷팅 등 일상 작업을 위한 경량 모델 oMLX: 추론 서버 Tailscale: 맥 미니, 아이폰, 맥북을 연결하는 테일넷
Hermes는 맥 미니에서 에이전트 백엔드로 실행되고, 맥북에서는 데스크톱 클라이언트를, 폰에서는 텔레그램을 사용합니다. Hermes 외 용도로는 iOS에서 빠른 채팅용 Apollo(Claude 같은 느낌이라 일회성 질문에 좋음), 코딩 에이전트 Pi(이 설정은 이미 글을 쓴 적이 있습니다), 맥에서 잡다한 작업용 Raycast AI를 사용합니다.
왜 굳이 로컬로?
로컬을 운영하는 주된 이유는 클라우드 API가 '빌린 땅'이라는 점입니다. 언제든지 가격을 바꾸고, 사용량 한도에 걸리게 하고, 뒤에서 제공되는 모델을 몰래 바꿀 수 있습니다. 저는 월 200달러짜리 구독 두 개를 정기적으로 최대치로 쓰고 있었는데, 시점마다 다른 품질을 받는 느낌이었습니다. 어떤 때는 모델이 괜찮다가, 어떤 때는 통보 없이 성능이 나빠졌습니다.
데이터 프라이버시도 문제입니다. 이 기업들이 데이터를 가진 후 어떻게 하는지 알 수 없습니다. 사용을 제한할 수도, 팔 수도, 노출시킬 수도 있습니다. 어느 쪽이든 운영상 보안 리스크가 됩니다. 민감한 코드, 고객 데이터, 독점 워크플로우를 다룬다면 서드파티 API로 보내는 것은 한 번 하면 되돌릴 수 없는 결정입니다.
그다음은 AI 주권 문제입니다. 저는 미국 정부가 여러 모델의 배포를 제한하는 것을 지켜봐 왔습니다. 이는 어떤 정부가 어떤 이유로든 언제든 일어날 수 있으며, 당신은 통제할 수 없습니다. 클라우드 모델에 의존하는 워크플로우가 제한되면 멈추거나 허둥지둥해야 합니다. 이를 피하는 유일한 방법은 자신의 컴퓨팅을 소유하는 것입니다.
기타 실용적 장점:
비용 예측성. API는 변동적입니다. 사용량이 급증하면 청구서도 따라 올라갑니다. 로컬 하드웨어는 하드웨어 구매비와 전기세가 전부입니다. 고정 비용이죠. 그 이후 모든 추론은 무료입니다.
지연 시간. 네트워크 왕복이 없어 일상 작업에서 더 빠른 응답을 얻습니다. M4 Pro의 미디어 엔진은 대부분의 프롬프트에서 즉각적으로 느껴지는 속도로 추론을 처리합니다.
오프라인 사용. 인터넷이 없어도 작동합니다. 백그라운드에서 돌아가는 에이전트 워크플로우에는 생각보다 중요합니다.
사용량 제한 없음. API 제공자는 사용량 임계값에 도달하면 제한하지만, 내 컴퓨터는 얼마나 돌리든 상관없습니다.
실제 사용 방법
맥 미니는 항상 켜져 있습니다. 책상에 놓여 있고 필요할 때 외에는 거의 신경 쓰지 않습니다. Hermes 역시 맥 미니에서 같은 머신의 로컬 모델을 사용해 실행됩니다. 폰의 텔레그램과 맥북의 Hermes 데스크톱 앱으로 에이전트에 접근합니다. Hermes 데스크톱 앱은 '셸' 역할을 하며 다른 기기(여기서는 맥 미니)의 Hermes 백엔드에 연결됩니다. 즉, 모든 기기에서 백엔드, 대화 기록, 스킬셋을 공유합니다.
그 외 활용: iOS의 Apollo는 일회성 빠른 채팅용입니다. Claude처럼 읽히지만 API 키나 구독이 필요 없는 것을 원했습니다. Apollo를 http://[mac-mini-tailnet-url]/v1에 연결하면 끝입니다. "이 문단 다시 써줘"나 "이 에러가 무슨 뜻이야" 같은 질문에 좋습니다. 맥의 Raycast는 뭔가 설치하고 싶지 않은 잡다한 작업용입니다. Pi는 코딩용으로, 이 설정도 이미 글을 썼습니다.
요점은 API 기반 모델을 대체하는 것이 아닙니다. GPT-5나 Claude Opus가 필요 없는 요청의 80%를 처리하는 것입니다. 필요할 때 그런 모델은 이미 사용 가능하죠. 로컬은 일상의 더 많은 부분을 무료로 처리해 줄 뿐입니다.
모델 구성
큰 모델을 로컬로 돌리는 것은 결국 한 가지, 실제 메모리에 얼마나 많은 RAM이 필요한가로 귀결됩니다. 대부분의 사람은 파라미터 수를 보고 잘못된 판단을 하는데, 밀집(dense) 모델과 [그 이하의 차이]...