요약 (TL;DR)
노트북이 잠자기(절전) 모드로 들어가도 AI 코딩 에이전트를 계속 실행하는 데는 난이도순으로 세 가지 해결책이 있습니다. caffeinate 명령어 또는 전원 설정을 사용해 노트북이 깨어 있는 상태를 유지하거나, Mac mini나 Linux 서버 같은 상시 가동 Computer로 에이전트를 이전하거나, 에이전트 앞에 큐(대기열)를 두어 노트북 덮개를 닫아도 작업이 중단되지 않고 해당 Computer에서 차례를 기다리도록 만드는 것입니다.
노트북 덮개를 닫으면 에이전트가 멈추는 이유
Claude Code나 Codex로 대규모 리팩터링 작업을 걸어두고, 노트북을 닫은 뒤 퇴근합니다. 다음 날 아침 터미널을 열어보면 어제 퇴근하던 바로 그 단계에 그대로 멈춰 있습니다. 완료된 작업은 하나도 없고, 어떤 알림도 오지 않았습니다.
원인은 이렇습니다. macOS가 잠자기 모드에 들어가면 에이전트를 포함한 모든 프로세스가 일시 중단됩니다. 모델 API로 연결된 에이전트의 네트워크 세션이 끊기고, 외부 도구나 보드와의 연결도 함께 종료됩니다. 노트북이 다시 깨어났을 때 에이전트는 재시도를 하거나 오류를 내뿜으며 종료되거나, 영영 오지 않을 응답을 마냥 기다리며 멈춰 서게 됩니다. 어떤 결과가 나오든 간에, 밤새 흘러간 소중한 시간은 이미 허공으로 날아간 뒤입니다.
이 가이드에서는 AI 코딩 에이전트를 중단 없이 계속 실행하는 세 가지 방법과 각각의 장단점 및 비용, 그리고 여전히 노트북에서 직접 처리해야 하는 작업이 무엇인지 살펴봅니다. 이미 Sharkly 같은 공유 보드를 통해 에이전트 작업을 관리하고 있다면, 두 번째와 세 번째 방법은 10분 정도면 바로 적용할 수 있습니다.

해결책 1: 노트북이 잠들지 않도록 유지하기
가장 빠른 방법은 노트북이 절전 모드로 전환되지 않도록 막는 것입니다. 배터리 소모와 발열이 발생하며, Apple이 요구하는 조건을 충족하지 않는 한 덮개를 닫은 상태에서는 동작하지 않습니다. 따라서 매일 밤 상시로 쓰기보다는 몇 시간 정도 작업할 때 임시로 사용하는 것이 좋습니다.
에이전트가 실행되는 동안 Mac이 잠들지 않게 하려면 어떻게 해야 하나요?
macOS에는 이를 위한 내장 명령어로 caffeinate가 있습니다. 이 명령어는 실행되는 동안 시스템에 절전 모드로 들어가지 말 것을 요청하는 파워 어서션(power assertion)을 유지합니다. caffeinate 레퍼런스에 따른 주요 옵션은 다음과 같습니다.
-i: 유휴(idle) 상태로 인한 절전 모드 진입을 방지합니다.-s: 시스템 절전 모드를 방지합니다(전원 어댑터 연결 시에만 유효).-d: 디스플레이가 꺼지지 않게 유지합니다(보통은 거의 필요하지 않습니다).-w <pid>: 지정한 프로세스가 종료되면 어서션을 해제합니다.-t <seconds>: 설정한 시간이 지나면 어서션을 해제합니다.
가장 깔끔한 방법은 에이전트 실행 명령 자체를 감싸는 것입니다. 이렇게 하면 에이전트가 종료될 때 어서션도 자동으로 끝납니다.
# Hold the assertion for exactly as long as the agent runs
caffeinate -is claude -p "Refactor the billing module and run the tests"
# Or attach to an agent that's already running
pgrep -f codex # prints the PID, for example 48213
caffeinate -i -w 48213
터미널 명령어 대신 GUI 설정이 편하다면 [시스템 설정] > [배터리]로 이동하세요. [옵션...]에서 "디스플레이가 꺼져 있을 때 전원 어댑터 사용 시 자동으로 잠자기에 들어가지 않도록 방지" 설정을 켭니다(Apple 배터리 설정 가이드). 단, 이 방법은 노트북에 전원 케이블이 연결되어 있을 때만 작동합니다.
노트북 덮개를 닫아도 caffeinate가 작동하나요?
단독으로는 작동하지 않습니다. MacBook은 '클램쉘(closed-display) 모드'가 아닌 이상 덮개를 닫으면 무조건 잠자기 모드로 들어갑니다. Apple에 따르면 클램쉘 모드는 전원 어댑터, 외장 디스플레이, 외장 키보드 및 마우스가 모두 연결된 상태에서 덮개를 닫고 사용하는 모드입니다(Apple 클램쉘 모드 가이드). 외장 모니터 연결 없이 노트북만 닫고 자리를 비우면 에이전트 실행도 그대로 멈춘다고 보아야 합니다.
Sharkly Desktop을 사용하고 있다면 명령어를 직접 입력할 필요가 없습니다. Computer 설정에 5분, 30분, 1시간, 2시간, 5시간, 8시간 또는 'Always(항상)' 단위로 지정할 수 있는 Prevent sleep 스위치가 제공되기 때문입니다. Computers 문서에 따르면 이 기능은 디스플레이가 꺼지더라도 시스템은 깨어 있는 상태로 유지하며, 지정한 시간이 끝나면 자동으로 꺼집니다. 단, 이 설정은 공유 또는 원격 컴퓨터가 아닌 로컬 컴퓨터에서만 사용할 수 있습니다.

해결책 2: 상시 가동 Computer에서 에이전트 실행하기
근본적인 해결책은 오래 걸리는 작업을 노트북에서 돌리지 않는 것입니다. 책상 위 남는 Mac mini, 한구석에 둔 Linux 서버, 클라우드 VM 등 덮개를 닫을 일 없는 상시 가동 머신에 에이전트를 올려두세요. 노트북은 작업을 지시하고 결과를 검토하는 용도로만 사용하는 것입니다.
DeepSeek Harness 팀도 자사의 슈퍼 에이전트 설계 에세이에서 이와 동일한 분리 방식을 설명합니다. 그들은 이를 'BYOM'이라고 부릅니다. 에이전트 루프와 세션 상태는 클라우드에 두고, 코드가 있는 각 환경에는 가벼운 데몬만 실행해 그대로 유지하는 구조입니다. 이 에세이는 바로 켜서 쓸 수 있는 완제품이 아니라 아키텍처를 제시한 것이지만, 핵심 개념은 동일합니다. 코드와 도구는 직접 제어하는 하드웨어에 두고, 작업을 배분하는 루프는 노트북이 열려 있든 닫혀 있든 멈추지 않고 돌아가게 만드는 것입니다.
상시 가동 머신에서 갖춰야 할 최소한의 환경은 에이전트 CLI, Git 인증 정보, 그리고 세션을 계속 유지할 방법입니다. Linux에서는 주로 tmux나 systemd 유닛을 구성해 SSH 연결이 끊어져도 에이전트가 계속 실행되도록 만듭니다. 에이전트가 하나일 때는 이 방법으로 충분합니다. 하지만 다섯 개를 동시에 돌리기 시작하면 어떤 작업이 끝났는지 일일이 SSH로 접속해 확인해야 하므로 관리가 번거로워집니다.
Sharkly에 원격 Computer를 추가하려면 어떻게 해야 하나요?
Sharkly에서 Computer는 에이전트를 실행하는 연결된 모든 호스트를 의미합니다. 호스트에 설치된 가벼운 로컬 서비스가 설치된 에이전트 도구(Claude Code, Codex 등)를 감지하여 각각을 Runtime으로 보고하고, 하트비트를 전송하며, 작업을 전달받습니다. 이 서비스는 아웃바운드 연결 방식을 사용하므로 일반적인 환경에서는 인바운드 포트를 열 필요가 없습니다.
서버를 연결하는 방법은 다음과 같습니다.
- Sharkly에서 [Settings] > [Computers]로 이동한 뒤 새 Computer 연결을 선택합니다.
- 일회용 설치 토큰(install token)을 발급받습니다. 유효 기간이 짧고 1회만 사용 가능하므로 스크립트나 이미지에 저장하지 마세요.
- 서버에 Sharkly CLI를 설치하고 등록을 진행합니다.
sharkly computer register --install-token <install-token>
# Check it from any terminal
sharkly computer list
sharkly computer ping <computer-id> <runtime-id>
- 해당 Computer가 온라인 상태로 표시될 때까지 기다린 후, 최소 하나 이상의 Runtime을 사용할 수 있는지 확인합니다.
Computers 문서에서 Linux 패키지(AppImage, deb, tar.gz) 설치 및 Runtime 점검 방법을 다룹니다. 서버와 노트북 중 어떤 환경이 적합한지 더 자세히 비교해 보고 싶다면 코딩 에이전트 원격 실행 가이드와 Sharkly의 Computers 가이드를 참고하세요.
해결책 3: 작업이 실패하는 대신 대기열(큐)에 머물게 하기
상시 가동 Computer라도 시스템 업데이트로 재부팅되거나 Wi-Fi 연결이 일시적으로 끊길 수 있습니다. 마지막 해결책은 이러한 공백으로 인해 밤새 작업이 통째로 날아가는 대신 기껏해야 몇 분의 지연만 발생하도록 방지하는 것입니다. 작업이 전달되는 바로 그 순간에 컴퓨터가 오프라인이었다고 해서 즉시 실패 처리되는 것이 아니라, 컴퓨터가 다시 연결될 때까지 작업을 대기열에서 기다리게 만드는 것입니다.
바로 이 지점에서 큐(대기열)의 진가가 드러납니다. Sharkly에서는 Agent에 작업을 할당하면, 실행 요청이 해당 Agent의 Computer 및 Runtime으로 전달됩니다. 문서에 명시된 동작 방식은 다음과 같습니다.
- Computer가 오프라인인 경우, 새로 시작된 실행은 일반적으로 다시 연결될 때까지 대기합니다.
- 작업이 전달(dispatch)되기 전에 Computer 연결이 끊어지면, 실행은 대기열(Queued) 상태를 유지할 수 있습니다.
- 각 Computer에는 작업 동시 실행 한도(task concurrency limit)가 있으며, 한도를 초과하는 작업은 대기열(Queued)에 머뭅니다.
- 임시 디렉터리나 격리된 작업 트리(worktree)를 사용하는 경우, Agent의 기본 동시 실행 한도는 Computer 한도의 50%로 설정됩니다.

따라서 야간 작업 패턴은 다음과 같이 진행됩니다. 퇴근하기 전 작업 5개를 등록하고 Mac mini에 있는 Agent에 할당합니다. 그러면 Computer가 동시 실행 한도만큼 작업을 처리하고, 나머지는 대기열에 머물다가 순차적으로 실행되어 아침에 결과를 바로 확인할 수 있습니다. 저장소 기반 실행은 각각 독립된 새 작업 트리(worktree)를 할당받을 수 있으므로 병렬 작업끼리 동일한 체크아웃 코드를 건드려 충돌할 염려도 없습니다. 한 번에 몇 개의 작업을 실행하는 것이 적절한지는 AI 코딩 에이전트 10개 동시 실행 방법을 참고하세요.
다만 알아두어야 할 제약 사항이 두 가지 있습니다. 공식 문서에 따르면 이미 진행 중이던 실행은 Computer 연결이 끊겼을 때 자동으로 재개된다고 보장하지 않으며, 취소된 작업 또한 해당 지점에서 바로 이어서 실행되지 않습니다. 작업이 멈춘 것 같다면 작업을 열어 실행 상태를 확인하고, 재시도하거나 후속 코멘트를 추가하세요. 예약된 자동화(Automations)의 경우 실행 상태에 'Skipped(건너뜀)'가 명시되어 있지만 오프라인 Computer가 어떻게 처리되는지는 자세히 설명되어 있지 않으므로, 밤새 실행하기 전에 Run now로 스케줄을 미리 테스트해 보는 것이 좋습니다.
여전히 노트북이 필요한 작업들
에이전트를 노트북 외부로 옮긴다고 해서 모든 작업을 원격으로 처리할 수 있는 것은 아닙니다. 다음과 같은 작업은 로컬 Computer에 남겨두어야 합니다.
- 지정 디렉터리(Specified directories): 고정된 로컬 폴더 하나에서 실행하며 기존에 존재하는 리소스를 재사용하는 방식은 로컬 Computer에서만 지원됩니다.
- 잠자기 방지(Prevent sleep): 이 토글 스위치는 데스크톱 앱의 '이 컴퓨터' 설정에서만 나타납니다.
- 로컬 전용 인증 정보 및 파일: 특정 작업에 VPN, 개인 키, 혹은 노트북에만 저장된 파일이 필요하다면 원격 서버에서는 이에 접근할 수 없습니다. 보안상 안전한 파일이라면 서버로 복사해 두거나, 해당 작업만 로컬에 남겨두고 해결책 1을 적용하세요.
리팩터링과 테스트 실행부터 의존성 버전 업데이트, 문서 수정에 이르기까지 그 밖의 모든 작업은 덮개를 닫을 일 없는 머신에서 원활하게 돌아갑니다. Sharkly는 토큰을 직접 판매하지 않으므로, 모델 사용 요금은 해당 Computer에 이미 등록된 Claude Code, Codex 또는 API 플랜으로 청구됩니다. 비용이 고민된다면 AI 에이전트 무료 실행 가이드와 Codex 클라우드 vs 자체 보유 Computer 비교에서 옵션별 차이를 확인해 보세요.
마치며
노트북이 잠들면 에이전트도 함께 멈춥니다. 오후에 잠깐 돌릴 작업이라면 caffeinate로 에이전트를 감싸거나 Prevent sleep을 켜두세요. 밤새 돌려야 하는 작업이라면 상시 가동 Computer로 에이전트를 옮기시기 바랍니다. 그리고 반드시 완수해야 하는 중요한 작업이라면 작업 앞에 대기열을 두어, 재부팅이나 일시적인 네트워크 끊김이 발생해도 작업이 중단되지 않고 잠시 대기했다가 정상 실행되도록 구성하세요.
이제 다음 단계로 넘어가 볼 차례입니다. 남는 머신 하나를 Computer로 연결하고, 오늘 밤 작업 두 개를 할당한 뒤 노트북 덮개를 닫아보세요. Sharkly는 무료로 시작할 수 있으며, Computers 문서를 참고하면 설치 토큰 발급부터 첫 실행까지 손쉽게 진행할 수 있습니다.
자주 묻는 질문 (FAQ)
노트북이 절전 모드에 들어가면 AI 에이전트가 멈추는 이유는 무엇인가요?
잠자기 모드는 모든 프로세스를 일시 중단하고 네트워크 연결을 끊습니다. 에이전트가 일시 중단된 상태에서는 모델 API에 접속할 수 없으므로, 노트북이 깨어났을 때 실행이 멈추거나 오류가 발생하거나 응답 대기 상태로 먹통이 됩니다.
Mac에서 밤새 Claude Code를 계속 실행하려면 어떻게 해야 하나요?
전원 어댑터를 연결한 뒤 caffeinate -is 명령어로 실행하면 에이전트가 끝날 때까지 Mac이 깨어 있는 상태를 유지합니다. 덮개를 닫은 상태로 실행하려면 클램쉘 모드 요건도 갖춰야 합니다. 매일 밤 장시간 작업을 돌린다면 상시 가동 Computer를 구축하는 것이 훨씬 안정적입니다.
caffeinate를 쓰면 덮개를 닫아도 절전 모드를 막을 수 있나요?
아닙니다. 전원 어댑터, 외장 디스플레이, 외장 키보드 및 마우스가 연결된 클램쉘 모드가 아니라면 MacBook은 덮개를 닫는 순간 무조건 잠자기 모드로 들어갑니다.
Computer가 오프라인 상태가 되면 Sharkly 작업은 어떻게 되나요?
새로 등록된 실행은 보통 Computer가 다시 연결될 때까지 대기하며, 아직 전달되지 않은 실행은 대기열(Queued) 상태로 유지될 수 있습니다. 다만 공식 문서상 이미 진행 중이던 실행의 자동 재개는 보장되지 않으므로, 연결이 장시간 끊어졌다면 작업의 실행 상태를 확인해 보세요.
Linux 서버에서도 코딩 에이전트를 실행할 수 있나요?
네, 가능합니다. 서버에 에이전트 CLI와 Sharkly CLI를 설치하고 설치 토큰으로 등록하면, 감지된 Runtime 목록과 함께 Sharkly에 Computer로 등록됩니다.



