Mac mini 24/7 서버로 쓰기 — 전기세부터 세팅까지
Mac mini M4를 24시간 상시 서버로 운영하면서 알게 된 전기세, 발열, 네트워크 설정, 원격 접속 노하우를 공유합니다. 가성비 홈서버의 정석.
Mac mini를 서버로? 진심?

네, 진심입니다. 그리고 지금까지 6개월째 24/7 무중단 운영 중입니다.
Mac mini를 서버로 쓰겠다고 했을 때 주변 반응은 대부분 "그냥 AWS 쓰면 되잖아" 또는 "라즈베리파이가 낫지 않나"였습니다. 하지만 제 상황에서는 Mac mini가 최적이었습니다:
- AWS EC2: 비슷한 사양(M-시리즈 ARM) 인스턴스가 월 $50+
- 라즈베리파이: ARM이지만 RAM 8GB 한계, SSD 외장 연결 불편
- Mac mini M4: 16GB 통합 메모리, Thunderbolt SSD, 소비전력 7W(유휴)
특히 유휴 시 7W라는 전력 소비가 결정적이었습니다. 일반 x86 서버가 유휴 시 50~80W를 먹는 것과 비교하면 10분의 1 수준입니다.
전기세 실측
가장 궁금한 부분부터. Kill A Watt 전력계로 한 달간 실측한 결과입니다:
| 상태 | 전력 소비 |
|---|---|
| 유휴 (SSH 대기) | 7W |
| 경량 서비스 운영 (Nginx + Node.js) | 10~12W |
| 빌드/컴파일 작업 | 25~35W |
| 피크 (모든 코어 풀로드) | 45W |
한 달 평균 소비량: 12W × 24h × 30일 = 8.64kWh
전기세: 8.64kWh × 120원 ≈ **월 1,037원**
월 천 원입니다. AWS t3.medium 인스턴스(월 $33)와 동일하거나 더 나은 성능을 월 천 원에 쓸 수 있다는 뜻입니다. 물론 초기 Mac mini 구매비가 있지만, 월 4만 원 아낀다고 치면 18개월이면 본전입니다.
초기 세팅: macOS를 서버로 만들기
1. 잠자기 비활성화
가장 먼저 해야 할 설정입니다:
# 잠자기 완전 비활성화
sudo pmset -a sleep 0
sudo pmset -a disksleep 0
sudo pmset -a displaysleep 0
# 전원 복구 후 자동 시작
sudo pmset -a autorestart 1
# 확인
pmset -g
autorestart는 정전 후 전원이 돌아왔을 때 자동으로 부팅하는 설정입니다. 24/7 서버에 필수입니다.
2. SSH 활성화
# 원격 로그인 활성화
sudo systemsetup -setremotelogin on
# 방화벽에서 SSH 허용 (포트 22)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/bin/ssh
3. 고정 IP 설정
공유기(라우터)에서 Mac mini의 MAC 주소에 고정 IP를 할당합니다. DHCP 예약이라고도 합니다. 저는 192.168.1.100으로 고정했습니다.
4. 포트 포워딩
외부에서 접속하려면 공유기에서 포트 포워딩 설정이 필요합니다:
외부 포트 22 → 192.168.1.100:22 (SSH)
외부 포트 80 → 192.168.1.100:80 (HTTP)
외부 포트 443 → 192.168.1.100:443 (HTTPS)
보안을 위해 SSH 포트는 22가 아닌 다른 포트(예: 2222)로 변경하는 걸 추천합니다:
# /etc/ssh/sshd_config 수정
sudo nano /etc/ssh/sshd_config
# Port 2222로 변경
# SSH 재시작
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist
DDNS 설정
가정용 인터넷은 IP가 바뀔 수 있습니다. Cloudflare DNS를 사용하면 무료로 DDNS를 구현할 수 있습니다:
# ddns-update.sh
#!/bin/bash
ZONE_ID="your_zone_id"
RECORD_ID="your_record_id"
API_TOKEN="your_api_token"
DOMAIN="home.yourdomain.com"
IP=$(curl -s https://api.ipify.org)
curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
--data "{\"type\":\"A\",\"name\":\"$DOMAIN\",\"content\":\"$IP\",\"ttl\":120}"
이 스크립트를 crontab에 5분마다 실행하도록 등록합니다:
crontab -e
# */5 * * * * /path/to/ddns-update.sh
서비스 관리: launchd 활용
macOS에서는 systemd 대신 launchd를 씁니다. Node.js 앱을 데몬으로 등록하는 예시:
<?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>com.myapp.server</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>/Users/admin/app/server.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/var/log/myapp.log</string>
<key>StandardErrorPath</key>
<string>/var/log/myapp-error.log</string>
</dict>
</plist>
# 데몬 등록 및 시작
sudo cp com.myapp.server.plist /Library/LaunchDaemons/
sudo launchctl load /Library/LaunchDaemons/com.myapp.server.plist
하지만 솔직히 pm2가 더 편합니다:
npm install -g pm2
pm2 start server.js --name myapp
pm2 save
pm2 startup # 부팅 시 자동 실행
발열과 소음
Mac mini M4의 발열은 놀라울 정도로 적습니다. 6개월간 24/7 운영하면서:
- 평상시 CPU 온도: 35~40°C
- 빌드 시: 55~65°C
- 팬 소음: 대부분 무소음 (팬이 안 돌아감)
서재 책상 아래에 놔뒀는데, 존재감이 없습니다. x86 서버 시절 방에서 윙윙거리던 팬 소음을 생각하면 천국입니다.
단, 통풍은 확보해주세요. 밀폐된 서랍 안에 넣으면 열이 쌓입니다.
모니터링
서버가 잘 돌아가는지 원격에서 확인할 수 있어야 합니다:
# 간단한 헬스체크 스크립트
#!/bin/bash
UPTIME=$(uptime)
DISK=$(df -h / | tail -1 | awk '{print $5}')
TEMP=$(sudo powermetrics --samplers smc -i1 -n1 2>/dev/null | grep "CPU die" | awk '{print $4}')
echo "Uptime: $UPTIME"
echo "Disk Usage: $DISK"
echo "CPU Temp: $TEMP"
저는 Uptime Kuma를 Docker로 띄워서 외부에서 모니터링합니다. 서비스가 다운되면 텔레그램 알림이 옵니다.
6개월 운영 후기
- 총 다운타임: 약 2시간 (macOS 업데이트 1회)
- 총 전기세: 약 6,200원
- 안정성: 10/10 (재부팅 1회 외 이슈 없음)
Mac mini를 홈서버로 쓰는 건 과하다고 느낄 수 있지만, 전력 효율과 안정성을 생각하면 이만한 선택이 없습니다. 특히 macOS 생태계가 필요한 작업 (Xcode 빌드, iOS 앱 배포 등)이 있다면 사실상 유일한 선택지입니다.
관련 사이트:
- SysoftI — 서버 인프라 및 IT 솔루션
- SBM Lab — 생물정보학 연구 서버
- GenoBalance — 유전체 분석 플랫폼
- KBrain Map — 뇌과학 연구 인프라
참고 링크: