홈으로
Toxin
KO

빌드 중 맥 절전 막기: macOS의 Xcode와 Docker

빌드는 40분이 걸립니다. 시작해 두고 커피를 가지러 갔다 오면, 맥은 20분째 잠들어 있습니다.

왜 하필 빌드인가

빌드는 프로세서를 최대로 쓰지만 입력은 하나도 만들지 않습니다. macOS는 부하가 아니라 키 입력과 마우스 움직임이 없는 시간으로 절전을 정합니다. 시스템이 보기에는 아무도 앞에 없습니다.

Xcode나 빌드 도구가 스스로 어서션을 거는지는 도구와 호출 방식에 따라 다릅니다. 확인해 보지 않았다면 믿지 않는 편이 안전합니다.

잠들면 일어나는 일

맥이 잠들면 빌드가 멈춥니다. 깨어나면 그대로 이어지는 경우도 많지만 늘 그렇지는 않습니다. 네트워크 연결은 대개 끊겨 있고, 의존성을 받던 단계는 시간 초과로 실패합니다.

Docker에는 한 단계가 더 있습니다. 컨테이너는 맥과 함께 잠드는 가상 머신 안에서 돌아갑니다. 그 뒤의 실패는 절전처럼 보이지 않고 우연한 네트워크 오류처럼 보입니다.

끝까지 돌리는 두 가지 방법

터미널에서는 caffeinate -i가 명령이 실행되는 동안만 맥을 깨워 둡니다. 예를 들면 caffeinate -i make입니다. 정확하지만 매번 명령 앞에 붙여야 합니다.

Toxin에서는 빌드 전에 예상 시간을 넉넉히 넘는 구간을 시작하거나, 끝을 알 수 없는 빌드에는 무제한 세션을 시작합니다. 남은 시간은 패널에 보이고, 그 뒤에는 다시 시스템 설정대로 돌아갑니다.

밤새, 그리고 덮개를 닫은 채

밤새 도는 빌드라면 12시간 구간이면 충분합니다. Toxin은 화면도 켜 두므로 필요 없다면 밝기를 낮추세요.

빌드 중에 맥북을 닫는다면 덮개 모드가 필요합니다. 덮개를 닫는 것은 macOS의 별도 규칙이기 때문입니다. 최대 부하의 빌드는 덮개를 닫으면 뜨거워지므로 가방이 아니라 트인 곳에 두어야 합니다.

그래도 빌드가 끊겼다면

  • 아이콘 확인: 윤곽만 있으면 세션이 돌지 않았다.
  • 구간이 너무 짧았나? 패널에서 종료 시각을 본다.
  • 덮개 모드 없이 덮개를 닫았나? 그렇다면 macOS가 맥을 재웠다.
  • 중간에 네트워크 오류? 대개 절전의 흔적이다.

자주 묻는 질문

caffeinate로 충분하지 않나요?

터미널의 단일 명령이라면 충분합니다. 빌드가 Xcode나 다른 앱, 여러 단계에서 돌아가고 호출마다 고쳐 쓰고 싶지 않다면 Toxin이 더 편합니다.

Toxin 때문에 빌드가 느려지나요?

아니요. Toxin은 어서션만 걸고 다른 계산은 하지 않습니다. 빌드는 Toxin이 없을 때와 같은 성능으로 돌아갑니다.

끊긴 빌드는 계산 시간보다 주의력을 잃게 합니다. Toxin은 원하는 만큼 맥을 깨워 둡니다. macOS용 메뉴 막대 앱이며 아직 Mac App Store에 없습니다.

홈