Adrafinil, 에이전트 시대의 맥 절전 제어
에이전트가 장시간 작업하는 환경에서는 전원 관리도 자동화 대상이 된다. 핵심은 항상 켜두기가 아니라 작업 상태와 권한을 분리한 운영 계층이다.
AI 뉴스를 놓치지 마세요
매주 핵심 AI 소식을 이메일로 받아보세요.
절전 관리가 에이전트 인프라가 됐다
Adrafinil은 맥을 항상 깨어 있게 만드는 도구가 아니다. README가 강조하는 차이는 "AI 코딩 에이전트가 실제로 작업 중일 때만" 절전을 막는다는 점이다. Claude Code, Codex, Cursor, Gemini CLI, Aider, OpenCode 같은 도구의 훅과 연결해 세션 시작 때 acquire, 작업 종료 때 release를 호출하고, 마지막 작업이 끝나면 일반적인 절전 정책으로 돌아간다.
이 작은 유틸리티가 눈에 띄는 이유는 에이전트 사용 방식이 바뀌었기 때문이다. 사용자는 밤에 노트북 덮개를 닫고, 에이전트는 긴 빌드, 테스트, 배포, 리팩터링을 계속할 수 있다. 기존의 caffeinate나 항상 켜두기 앱은 문제를 거칠게 푼다. 하지만 에이전트 운영에서는 언제 깨어 있어야 하는지, 누가 요청했는지, 실패하면 어떻게 해제할지가 더 중요하다.
Claude Code 훅 문서와 GitHub Copilot coding agent 문서는 코딩 에이전트가 이미 IDE 밖의 작업 수명주기를 가진다는 점을 보여준다. Adrafinil은 그 수명주기를 전원 관리까지 확장한 사례다.
항상 켜두기보다 참조 카운트가 중요하다
Adrafinil은 작업별 assertion을 참조 카운트로 쌓는다. 여러 에이전트가 동시에 실행되면 하나가 끝났다고 바로 잠들지 않고, 마지막 assertion이 해제될 때만 절전을 허용한다. CLI 왕복 시간을 50ms 미만으로 잡고, 죽은 프로세스나 오래 유휴 상태인 작업을 자동 해제하며, 온도 임계값을 넘으면 강제로 풀어주는 구조도 포함한다.
| 방식 | 장점 | 약점 | 에이전트 시대의 적합도 |
|---|---|---|---|
| 수동 절전 해제 | 단순하다 | 끄는 것을 잊기 쉽다 | 낮음 |
| 항상 켜두기 앱 | 익숙하다 | 작업 여부를 모른다 | 중간 |
| 작업 훅 기반 제어 | 세션 수명주기와 맞다 | 훅 설치와 권한 설계가 필요하다 | 높음 |
| 원격 빌드 전용 | 로컬 열 문제를 피한다 | 로컬 파일과 비밀 관리가 복잡하다 | 상황별 |
이 구조는 Workweave Router, 모델 선택을 인프라로 만든다에서 본 모델 라우팅과 닮았다. 비용 라우팅이 요청 단위 정책을 다루듯, 전원 라우팅도 작업 단위 정책을 다룬다. 에이전트 인프라는 이제 API 키와 모델만이 아니라 장비 상태까지 포함한다.
권한 분리는 장난감 도구와 운영 도구를 가른다
README에서 가장 중요한 부분은 privileged helper다. Adrafinil은 뚜껑을 닫은 맥을 깨워 두기 위해 루트 권한이 필요한 경로를 쓰지만, 정책은 비권한 daemon에 두고 helper에는 setSleepBlocked(Bool) 같은 좁은 표면만 노출한다고 설명한다. Apple IOKit 전원 관리 문서와 pmset 매뉴얼을 보면, 절전 제어는 편의 기능처럼 보여도 시스템 정책을 직접 건드리는 영역이다.
한국 기업이 이런 도구를 사내에 들일 때는 "맥이 잠들지 않는다"보다 "누가 루트 권한 경로를 호출할 수 있나"를 먼저 봐야 한다. 코드 서명, helper 업데이트, 로그, 온도 차단, 훅 제거, 퇴사자 장비 회수 정책까지 운영 문서에 들어가야 한다. Cloudflare 임시 계정, 에이전트 배포의 새 관문이 계정 수명주기를 다뤘다면, Adrafinil은 로컬 장비 수명주기를 다룬다.
한국 개발팀의 실전 시사점
첫째, 에이전트 장시간 작업은 원격 서버로만 풀리지 않는다. 로컬 iOS 빌드, Xcode 프로젝트, 사내 VPN, 로컬 보안 토큰이 필요한 작업은 여전히 개인 장비에서 실행된다. 둘째, 자동화가 늘수록 "작업이 끝났는지"를 판단하는 신호가 필요하다. 종료 훅이 빠지면 맥은 깨어 있고, 시작 훅이 빠지면 빌드는 중간에 멈춘다.
셋째, 에이전트 운영 표준은 작게 시작해야 한다. 팀은 Claude Code나 Codex 훅에서 작업 ID를 남기고, 빌드와 테스트 같은 긴 작업만 time-boxed hold로 묶은 뒤, 온도와 실패 해제 로그를 살펴보는 식으로 도입할 수 있다. TesterArmy, QA 에이전트가 배포 관문이 되다처럼 QA가 배포 관문이 되면, 전원과 네트워크 안정성도 배포 품질의 일부가 된다.
자주 묻는 질문
Q1: Adrafinil은 단순한 caffeinate 대체품인가요?
A: 아니다. 핵심은 항상 켜두기가 아니라 에이전트 훅과 연결된 작업 단위 assertion이다.
Q2: 뚜껑을 닫은 맥을 계속 켜두는 것은 안전한가요?
A: 열과 배터리 위험이 있다. 그래서 온도 차단, 시간 제한, 죽은 프로세스 해제 같은 안전장치가 중요하다.
Q3: 회사 장비에 바로 설치해도 되나요?
A: 루트 권한 helper가 있으므로 보안 검토와 코드 서명, 제거 절차를 먼저 확인해야 한다.
Q4: 원격 개발 환경이면 필요 없나요?
A: 원격 빌드만 쓰면 필요가 줄지만, 로컬 Xcode, VPN, 장비 테스트가 있는 팀에는 여전히 의미가 있다.
Q5: 이 흐름의 더 큰 의미는 무엇인가요?
A: 에이전트가 작업자가 되면서 전원, 네트워크, 권한, 로그 같은 로컬 운영 요소도 개발 플랫폼의 일부가 되고 있다는 점이다.
관련 토픽 더 보기
📰 원본 출처
github.com이 기사는 AI 기술을 활용하여 작성되었으며, 원본 뉴스 소스를 기반으로 분석 및 해설을 추가한 콘텐츠입니다. 정확한 정보 전달을 위해 노력하고 있으나, 원본 기사를 함께 확인하시기를 권장합니다.