macOS를 사용하다 보면 대용량 파일 다운로드, 긴 빌드 작업, 또는 백그라운드 스크립트 실행 등을 위해 화면이 꺼지거나 시스템이 잠자기에 들지 않도록 설정해야 할 때가 있습니다. 이를 위해 사용하는 대표적인 두 가지 방식이 CLI 기반의 caffeinate 명령어와 GUI 기반의 Amphetamine 앱입니다.
이 글에서는 두 도구의 기능과 옵션을 면밀히 비교하고, 작업 환경에 따른 제어 방법, 그리고 맥북 유저들의 고민거리인 **클램쉘 모드(Clamshell Mode)**에서의 동작 차이까지 종합적으로 정리해 보겠습니다.
1. 내장 명령어 caffeinate
caffeinate는 macOS에 기본 탑재된 커맨드라인 유틸리티로, 별도의 앱 설치 없이 터미널에서 즉시 사용할 수 있습니다. 스크립트나 자동화 파이프라인(DevOps)에 통합하기 매우 좋습니다.
주요 옵션 및 동작 제어
| 옵션 | 설명 | 활용 예시 |
|---|---|---|
-d | 디스플레이 잠자기 방지 (Prevent display sleep) | 프레젠테이션, 대시보드 모니터링 띄워두기 |
-i | 시스템 유휴 잠자기 방지 (Prevent system idle sleep) | 백그라운드 컴파일, 대용량 파일 다운로드 (화면은 꺼져도 시스템은 켜둠) |
-m | 디스크 유휴 잠자기 방지 (Prevent disk idle sleep) | 외장 하드디스크 I/O 작업 중 디스크 절전 방지 |
-s | 전원 연결 시 시스템 잠자기 방지 (System sleep, AC power only) | 전원이 연결된 상태에서만 안전하게 각성 유지 |
-u | 사용자 활성 상태로 선언 (Declare user active) | 화면이 꺼져있을 때 즉시 켜고 절전 모드로 가는 것을 방지 |
-t [초] | 특정 시간 동안 유지 (Timeout) | caffeinate -t 3600 (1시간 동안 잠자기 방지) |
-w [PID] | 특정 프로세스가 종료될 때까지 대기 | caffeinate -w 1234 (PID 1234가 끝날 때까지 방지) |
💡 실전 활용 팁:
- 명령어와 함께 실행:
caffeinate -i npm run build(빌드가 끝날 때까지만 시스템 유휴 잠금 방지) - 일반적인 백그라운드 봇 돌리기:
caffeinate -i -s(화면은 꺼지되, 전원 연결 시 시스템은 상시 구동)
2. 서드파티 앱 Amphetamine
Amphetamine은 macOS 생태계에서 가장 강력하고 널리 쓰이는 무료 잠자기 방지 앱입니다. 상태 표시줄(메뉴바)에 상주하며, 간단한 토글 액션과 함께 복잡한 ‘트리거(Trigger)’ 기반의 자동화 기능을 제공합니다.
주요 기능 및 동작 제어
- 세션(Session) 기반 제어: 무기한, 특정 시간(분/시간), 특정 앱이 실행 중일 때, 파일 다운로드가 완료될 때까지 등 상황에 맞게 각성 상태를 제어할 수 있습니다.
- 고급 트리거(Triggers):
- 특정 Wi-Fi 네트워크에 연결되었을 때 (예: 회사 네트워크)
- 특정 블루투스 기기가 연결되었을 때
- AC 전원이 연결되었을 때
- 배터리가 N% 이하로 떨어지면 잠자기 허용 (배터리 보호)
- 드라이브 활성 유지 (Drive Keep Alive): 무휴동 상태에서 외장 스토리지가 절전 모드에 들어가는 것을 막기 위해 주기적으로 빈 파일을 썼다 지우는 기능을 지원합니다.
- 비활성 화면 보호 무효화: 마우스 커서를 주기적으로 조금씩 움직이게 하여 사내 보안 정책 등으로 인해 강제로 화면이 잠기는 것을 방지할 수 있습니다.
3. Amphetamine vs caffeinate 비교 요약
| 구분 | caffeinate | Amphetamine |
|---|---|---|
| 종류 | CLI 도구 (macOS 내장) | GUI 앱 (Mac App Store 무료) |
| 적합한 사용자 | 개발자, 시스템 관리자, 터미널 헤비 유저 | 일반 데스크톱 사용자, 세밀한 UI 제어 필요 유저 |
| 자동화 방식 | Shell 명령, 프로세스(PID) 연동 | Wi-Fi, 배터리 잔량, 특정 앱 실행 등의 물리/OS 환경 |
| 인터페이스 | 터미널 입력, 백그라운드 프로세스 | 메뉴바(상태 표시줄) 토글, 간편한 우클릭 메뉴 |
| 설치 및 종속성 | ❌ (기본 탑재, 추가 설치 없음) | ✅ (App Store 설치 필요) |
4. 클램쉘 모드(Clamshell Mode)와 각성 제어
맥북 덮개를 닫은 상태로 모니터에 연결해 데스크톱처럼 사용하는 것을 클램쉘 모드라고 합니다.
기본 시스템 제약
macOS는 기본적으로 “전원 연결 + 외부 디스플레이 연결 + 외부 입력장치(키보드/마우스) 작동” 조건이 모두 충족될 때만 덮개를 닫았을 때 절전 모드로 진입하지 않습니다.
caffeinate를 통한 클램쉘 제어 한계
터미널에서 caffeinate -i 를 실행한 상태라도, 위 3가지 조건 없이 단순히 맥북 덮개를 닫으면 하드웨어적인 Sleep 명령이 우선 적용되어 절전 모드로 들어갑니다. 즉, 순정 상태의 Mac에서는 caffeinate 단독으로 모니터 없이 덮개를 닫은 채 서버처럼 구동할 수 없습니다.
Amphetamine의 “Closed-Display Mode” 마법
Amphetamine은 설정을 통해 애플의 하드웨어 슬립 제약을 우회할 수 있습니다.
- 옵션 해제: 설정에서 “Allow system sleep when display is closed” (디스플레이를 닫았을 때 시스템 잠자기 허용) 체크를 해제하면 덮개를 닫아도 강제로 절전 모드로 가지 않게 막을 수 있습니다.
- 독립적인 백그라운드 구동: 모니터나 전원조차 연결하지 않고도 덮개를 닫은 채 렌더링을 계속하거나, 로컬 서버를 유지할 수 있습니다.
⚠️ 주의사항 (발열 이슈): 덮개를 닫은 채 무거운 로드를 발생시키는 백그라운드 작업을 실행하고 통풍이 안 되는 가방 등에 넣으면 심각한 발열로 인해 기기에 영구적인 데미지가 발생할 수 있습니다. 이 기능은 반드시 쿨링이 보장된 환경에서만 제한적으로 사용해야 합니다.
마무리
- 스크립트 빌드, 패키지 설치 등 **“특정 작업이 끝날 때까지만 터미널에서 일시적 방어”**를 하고 싶다면
caffeinate가 가장 빠르고 확실한 도구입니다. - 일상적인 업무(프레젠테이션, 화상 회의, 외장 드라이브 마운트 유지)나 강력한 클램쉘 모드 제어가 필요할 때는 상태 표시줄에서 간단하게 트리거를 켤 수 있는
Amphetamine을 추천합니다.
macOS 환경을 서버나 자동화 도구로 적극 활용하는 엔지니어라면, 상황에 맞게 두 가지 툴을 적절히 병행하여 사용하는 것이 최고의 생산성을 가져다줄 것입니다.