엄마! 일어나~ 어머니한테 매일 일정 리마인드 카톡 자동으로 보내는 시스템 만들었습니다.

먼저 참고한 사례게시글 (감사합니다!)

https://www.gpters.org/nocode/post/rights-analysis-profit-calculation-gH4YN7mcRg6bT3N

  • 숏폼 시나리오 자동화 과정 중 하게 된 카톡 API 사용하여 진행한 자동화 사례를 만들었습니다.

  • 비슷한 에이전트를 만들어 에이전시팀으로 해 보는게 목표입니다

🎯 바쁘시면 이것만 읽어도 돼요

  • Claude Code로 특정 일정관리 서비스 일정 자동 수집 → 카카오톡 발송 시스템 구축

  • 맥이 새벽 5:50에 자동으로 켜지고, 6시에 카톡 보내고, 다시 잠자리에 들어요

  • 처음엔 매일 오류가 났는데 launchd로 영구 해결했어요


👨‍👩‍👧 이런 분들께 도움돼요

  • 부모님이나 가족에게 매일 특정 정보를 카톡으로 보내고 싶은 분

  • 맥을 활용한 자동화에 관심 있는 분

  • Claude Code로 실제 생활 문제를 해결하고 싶은 분


😫 Before: 매일 아침 수동으로

어머니께서 특정 일정관리 사이트에 로그인해서 오늘 일정 체크를 하셔야 했는데 들어가는 방식도 가서 확인하는 것도 한눈에 들어오지 않다보니 깜빡하거나 늦어지는 일이 생겼고, 이걸 쉽게 리마인드 및 자동화하기로 했어요.


🛠️ 시스템 구조

05:50  맥 자동 깨우기 (pmset + launchd)
06:00  cron 실행
         └─ 일정관리 서비스 로그인 (저장된 세션)
         └─ 당일 일정 수집
         └─ 카카오톡 발송
         └─ 맥 자동 잠자기

사용 도구

  • Claude Code (claude-sonnet-4-6)

  • Python 3 + Playwright (웹 크롤링)

  • 카카오 API (메시지 발송)

  • macOS cron + pmset + launchd


🔨 구축 과정

첫 번째 — 카카오톡 발송 스크립트

Claude Code에게 구조를 설명하고 check_schedule.py를 만들었습니다, Playwright로 일정관리 서비스에 접속해 API 응답을 가로채고, 특정 담당자 ID로 필터링해서 카톡으로 보내는 방식이에요.

카카오 access_token은 6시간마다 만료되는데, -401 오류가 나면 refresh_token으로 자동 갱신하는 로직도 함께 넣었어요. (이 문제가 이틀 연속 반복 됨...)

두 번째 — cron + pmset으로 자동화

# cron (매일 06:00)
0 6 * * * cd /Users/username/wakeupmommy && python3 check_schedule.py >> cron.log 2>&1 && sleep 10 && osascript -e 'tell application "System Events" to sleep'

# pmset (매일 05:50 자동 기상)
sudo pmset repeat wakeorpoweron MTWRFSU 05:50:00

검증만 수 번을 해서 방심하고 있었습니다, 늘 첫 시작은 잘 안되는 법인데.

세 번째 — 반복되는 오류들과 해결

처음엔 잘 되는 것 같았는데 다음날 아침 카톡이 안 왔고 아예 몇 시간동안 Claude Code와 같이 하나씩 디버깅했어요.

문제

원인

해결

카톡 미수신

pmset repeat 소멸

pmset 재등록

발송 실패

access_token 만료(-401)

get_token.py로 재발급

.env 깨짐

nano 붙여넣기 줄바꿈 오류

스크립트가 직접 .env 쓰도록 변경

엉뚱한 계정 발송

다른 폰의 카카오 계정으로 인증

/v2/user/me로 계정 ID 검증

네 번째 — pmset 소멸 근본 원인 파악

last reboot
# → 재부팅할 때마다 pmset repeat이 초기화되고 있었음

분명 고친 첫날 작동하는 것을 보았는데 또 다음 말은 안되는 일이 생겼습니다. macOS가 특정 재시작 상황에서 pmset repeat을 날려버리는 게 원인이었어요.
launchd 데몬을 만들어서 부팅할 때마다 자동으로 pmset repeat을 재등록하게 했어요.

<!-- /Library/LaunchDaemons/com.wakeupmommy.pmset.plist -->
<key>ProgramArguments</key>
<array>
    <string>/usr/bin/pmset</string>
    <string>repeat</string>
    <string>wakeorpoweron</string>
    <string>MTWRFSU</string>
    <string>05:50:00</string>
</array>
<key>RunAtLoad</key>
<true/>
sudo cp com.wakeupmommy.pmset.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/com.wakeupmommy.pmset.plist
sudo chmod 644 /Library/LaunchDaemons/com.wakeupmommy.pmset.plist
sudo launchctl bootstrap system /Library/LaunchDaemons/com.wakeupmommy.pmset.plist

✅ After: 매일 아침 자동으로

항목

Before

After

일정 확인

수동 로그인

자동 수집

카톡 발송

매일 아침 직접

06:00 자동 발송

토큰 관리

만료되면 수동 갱신

-401 오류 시 자동 갱신

pmset 소멸

매번 수동 재등록

launchd로 부팅 시 자동 복구

발송 결과

알 수 없음

status.log에 기록


제발 오늘은 오전 6시에 잘 발송될 수 있기를 바라며 이렇게 기록합니다. 엄마, 이제 까먹지 말고 나랑 리마인드 해보자~

💡 효과적이었던 것

  • Claude Code에게 로그 붙여넣기cron.log 내용을 그대로 붙여넣으면 원인을 바로 찾아줬어요

  • last reboot으로 재부팅 이력 확인: pmset 소멸 타이밍과 정확히 일치했어요

  • launchd로 idempotent하게: 혹시 소멸돼도 다음 부팅 때 자동 복구

⚠️ 이렇게 하면 안 돼요

  • pmset schedule(1회성)로 등록하면 실행 후 사라짐 → 반드시 repeat 사용

  • 카카오 토큰 재발급 시 계정 확인 안 하면 엉뚱한 폰으로 카톡 감

  • nano로 긴 토큰 붙여넣기 → 줄바꿈 깨짐. 스크립트가 직접 파일 쓰게 할 것

1
2개의 답글

뉴스레터 무료 구독