Mac mini M4로 개발 서버 구축하기 – 24시간 운영 가이드
Mac mini M4를 24시간 개발 서버로 3개월간 운영한 실전 가이드. 초기 설정, Docker 환경, 외부 접속, 모니터링까지 정리했습니다.
Mac mini를 서버로? 진지합니다
Mac mini M4를 개발 서버로 쓴 지 3개월째입니다. 처음엔 "Mac을 서버로?"라는 반응이 많았는데, 실제로 돌려보니 이게 가성비 끝판왕이더군요. 저전력에 발열도 적고, ARM 기반이라 Docker 이미지 호환성만 주의하면 리눅스 서버 못지않게 활용할 수 있습니다.
내 구성
-
Mac mini M4 (16GB RAM, 256GB SSD)
-
외장 SSD 1TB (Samsung T7, 데이터 저장용)
-
UPS (APC BE425M, 정전 대비)
-
이더넷 연결 (Wi-Fi보다 안정적)
RAM은 16GB로도 개발 서버 용도로는 충분합니다. Docker 컨테이너 5-6개 동시 운영하는데 메모리 부족을 느낀 적은 없습니다.
초기 설정 – macOS를 서버 모드로
24시간 운영을 위한 필수 설정들입니다:
`# 잠자기 비활성화 sudo pmset -a sleep 0 sudo pmset -a disksleep 0 sudo pmset -a displaysleep 0
전원 복구 시 자동 부팅
sudo pmset -a autorestart 1
원격 접속 활성화
sudo systemsetup -setremotelogin on
화면 공유 활성화 (선택사항)
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist`
Docker 환경 구성
OrbStack을 사용합니다. Docker Desktop보다 가볍고 M4에서 훨씬 안정적입니다:
`# OrbStack 설치 후 docker compose up -d
제 docker-compose.yml 주요 서비스
- PostgreSQL 16
- Redis 7
- Nginx (리버스 프록시)
- 개발 중인 API 서버 2개`
ARM 이미지가 없는 경우 platform: linux/amd64으로 에뮬레이션 가능하지만, 성능이 절반 이하로 떨어집니다. 가능하면 ARM 네이티브 이미지를 쓰세요.
외부 접속 설정
집 네트워크에서 외부 접속을 위해 Cloudflare Tunnel을 사용합니다. 포트포워딩 없이 안전하게 접속할 수 있어서 좋습니다:
`# cloudflared 설치 brew install cloudflared
터널 생성
cloudflared tunnel create dev-server
설정 파일 (~/.cloudflared/config.yml)
tunnel: [터널ID] credentials-file: /Users/username/.cloudflared/[터널ID].json
ingress:
- hostname: dev.example.com service: http://localhost:3000
- hostname: api.example.com service: http://localhost:8080
- service: http_status:404`
모니터링
24시간 운영이니까 모니터링은 필수입니다. 저는 간단하게 구성했습니다:
-
Uptime Kuma: 서비스 상태 모니터링 (Docker로 설치)
-
자작 스크립트: CPU 온도, 메모리, 디스크 체크 → Telegram 알림
`# CPU 온도 확인 (macOS) sudo powermetrics --samplers smc -i1 -n1 | grep "CPU die temperature"
보통 35-45°C 유지 (팬 거의 안 돌아감)`
3개월 운영 후기
전기세가 월 약 3,000원입니다. Mac mini M4의 평균 소비전력이 약 15W거든요. 소음은 사실상 제로입니다. 방에 놓고 자도 전혀 안 들립니다. 3개월간 예기치 않은 재부팅이 딱 1번 있었는데, macOS 자동 업데이트 때문이었습니다. 자동 업데이트는 꺼두세요.
AWS나 VPS에 월 몇만 원 쓰는 것보다, Mac mini 하나 사서 집에서 돌리는 게 개인 개발자에게는 훨씬 합리적인 선택이라고 생각합니다.