Claude Code 매일 2시간 낭비를 없애주는 cron job 설정법
I wrote a cron job that saves me ~2 hours of dead time on Claude Code every day
TL;DR Highlight
Claude Code Max의 5시간 사용 윈도우를 매일 아침 'hi' 메시지 자동 전송으로 업무 시간에 앵커링한다.
Who Should Read
Claude Code Max 플랜을 매일 heavy하게 쓰는 개발자. 특히 오전 중에 사용량 한도에 걸려 대기 시간이 생기는 상황을 겪어본 사람.
Core Mechanics
- Claude Code Max 플랜의 사용 윈도우는 5시간이며, 당일 첫 메시지를 보낸 시각(시 단위 내림)을 기준으로 시작된다. 예를 들어 8:30에 첫 메시지를 보내면 윈도우는 8AM~1PM이 된다.
- 이 타이밍을 이용해 업무 시작 전인 6AM에 짧은 메시지('hi' 한 마디)를 보내두면, 윈도우가 6AM~11AM으로 앵커링되어 11AM에 이미 새 윈도우가 열린다.
- GitHub Actions cron job을 이용하면 매일 아침 자동으로 워밍업 메시지를 보낼 수 있다. 관련 레포는 https://github.com/vdsmos/claude-warmup 에 공개되어 있다.
- 더 간단한 방법으로는 Claude Code 웹의 네이티브 스케줄 기능(https://claude.ai/code/scheduled)을 사용하면 별도 인프라 없이 동일한 효과를 낼 수 있다. 작성자가 직접 확인한 결과 정상 동작했다.
- 이 개념을 오전 윈도우뿐 아니라 하루 중 다른 시간대에도 적용하면 여러 윈도우의 타이밍을 원하는 업무 흐름에 맞게 최적화할 수 있다.
- 이 방법은 사용량을 늘리거나 제한을 우회하는 것이 아니라, 고정된 윈도우가 시작되는 타이밍만 조정하는 것이다. 추가 사용량이 생기지 않는다.
Evidence
- 이 방법이 TOS 위반 아니냐는 우려에 대해, '사용량을 늘리는 게 아니라 윈도우 시작 타이밍만 조정하는 것이므로 문제없다'는 의견이 다수였다. 오히려 롤링 리셋 방식으로 설계됐어야 했다는 비판도 나왔다.
- GitHub Actions 대신 Claude Code 웹의 네이티브 스케줄 기능(https://claude.ai/code/scheduled)을 쓰면 훨씬 간단하다는 팁이 댓글에서 먼저 제안됐고, 작성자가 직접 테스트 후 '완벽하게 동작한다'고 확인해 본문 EDIT에 반영했다.
- 수개월째 수동으로 매일 아침 'hi'를 치고 샤워하러 간다는 사용자들의 경험 공유가 있었다. 이미 많은 heavy 사용자들이 같은 패턴을 쓰고 있었던 셈이다.
- Mac 환경에서는 cron 대신 launchd를 사용하는 게 안정적이었다는 실사용 경험도 공유됐다. cron 관련 이슈가 있어 결국 launchd로 전환했다는 사례.
- 댓글에서 Claude Code 워크플로우 관련 추가 팁도 공유됐다: CLAUDE.md를 프로젝트 컨벤션 저장소로 활용하기, 세션당 하나의 작업만 집중하기, 코드 수정 전 파일 요약 먼저 요청하기 등이 효과적이라는 경험담이 있었다.
- 원격으로 세션을 모니터링하다가 agent가 permission prompt에서 멈추는 문제는 이 방법으로도 해결되지 않는 미해결 pain point로 언급됐다. 자리를 비운 사이 agent가 멈춰 있는 상황은 여전히 불편하다는 의견.
How to Apply
- Claude Code 웹(https://claude.ai/code/scheduled)에서 매일 아침 업무 시작 2시간 전(예: 6AM)에 'hi'를 보내는 스케줄을 등록해두면, 별도 인프라 없이 윈도우를 원하는 시간에 앵커링할 수 있다.
- GitHub Actions이나 Mac launchd를 선호한다면 https://github.com/vdsmos/claude-warmup 레포를 참고해 cron job을 설정한다. Mac에서는 cron보다 launchd가 더 안정적이라는 커뮤니티 경험이 있으니 참고할 것.
- 오전 외에도 오후 집중 업무 시간이 있다면, 같은 방식으로 두 번째 윈도우 시작 타이밍도 조정해 하루 전체 Claude Code 사용 가능 시간을 업무 스케줄에 맞게 배치할 수 있다.
Terminology
관련 논문
Swift로 LLM 학습시키기 Part 1: 행렬 곱셈을 Gflop/s에서 Tflop/s로 끌어올리기
Apple Silicon에서 Swift로 직접 행렬 곱셈 커널을 구현하며 CPU, SIMD, AMX, GPU(Metal)를 단계별로 최적화해 Gflop/s에서 Tflop/s 수준까지 성능을 높이는 과정을 상세히 설명한 글이다. 프레임워크 없이 LLM 학습의 핵심 연산을 밑바닥부터 구현하고 싶은 개발자에게 Apple Silicon의 성능 한계를 체감할 수 있는 드문 자료다.
fsync 없이 로컬 스토리지 엔진을 crash-consistent하게 만든 방법
FractalBits가 fsync 없이 SSD 전용 KV 스토리지 엔진을 구현해 동일 조건 대비 약 65% 높은 쓰기 성능을 달성한 설계 방법을 공유했다. fsync의 메타데이터 오버헤드를 피하기 위해 사전 할당, O_DIRECT, SSD 원자 쓰기 단위 정렬 저널을 조합한 구조가 핵심이다.
Google Chrome, 사용자 동의 없이 4GB AI 모델(Gemini Nano)을 몰래 설치
Google Chrome이 사용자 동의 없이 Gemini Nano 4GB 모델 파일을 자동 다운로드하고, 삭제해도 재다운로드되는 문제가 발견됐다. GDPR 위반 가능성과 수십억 대 기기에 적용될 때의 환경 비용 문제가 제기되고 있다.
OpenAI가 대규모 저지연 Voice AI를 제공하는 방법
OpenAI가 9억 명 이상의 사용자에게 실시간 음성 AI를 제공하기 위해 WebRTC 스택을 어떻게 재설계했는지 설명하는 글로, relay + transceiver 분리 아키텍처의 설계 결정과 trade-off를 상세히 다룬다.
Truncated Decoding Tree의 결정론적 탐색을 통한 효율적인 Test-Time Inference
Self-consistency의 중복 샘플링 낭비를 없애는 결정론적 트리 탐색 디코딩 기법 DLE로 수학/코드 추론 성능과 속도를 동시에 개선
GoModel – Go로 작성된 오픈소스 AI Gateway
OpenAI, Anthropic, Gemini 등 여러 AI 프로바이더를 하나의 OpenAI 호환 API로 묶어주는 Go 기반 오픈소스 AI 게이트웨이로, LiteLLM의 컴파일 언어 대안이다.