파이프라인이 27번 알림을 보냈는데 그건 제가 27번 손으로 돌린 것이었습니다: cron 0개, 상주 프로세스 0개

소개

스터디의 목표는 분명합니다.

홈에서 24시간 멈추지 않는 AI 에이전트를 운영하는 인터페이스를 개발하는 거예요. 결국 목표는 24시간 멈추지 않는 각자의 서버 만들기죠.

저는 경제 데이터를 수집해 분석하고 텔레그램으로 알림을 보내는 파이프라인을 굴리고 있습니다. 알림이 27건 나갔고, 그래서 "돌아가고 있다"고 생각해 왔습니다.

그런데 스터디장 온어닷이 자기 것을 소개하며 이렇게 말했습니다.

저는 지금 이 순간에도 집에서 돌아가고 있어요.

이 문장이 걸렸습니다. 지금 이 순간에도입니다. 제 파이프라인은 지금 돌고 있을까. 확인해 봤더니 아니었습니다.진행 방법

사용 도구: Claude Code, crontab, launchctl, ps, grep

Step 1. 예약 실행이 걸려 있는가

24시간 도는 것의 최소 조건은 내가 없어도 실행되는 것입니다. 먼저 cron을 봤습니다.

crontab -l | grep -vc '^#'

항목

crontab 등록

0개

macOS는 launchd도 쓰므로 그쪽도 봤습니다.

ls -1 ~/Library/LaunchAgents/*.plist

9개가 나왔습니다. 그런데 이름을 보니 이렇습니다.

com.BlueStacks.AppPlayer.Service.plist
com.google.GoogleUpdater.wake.plist
com.google.keystone.agent.plist
com.imobie.AnyTransToolHelpers.plist
kr.co.iniline.crossex-service.plist
ai.openclaw.gateway.plist

8개는 남의 앱이 설치한 것입니다. 제가 만든 것은 하나도 없습니다.

Step 2. 지금 떠 있는 프로세스가 있는가

ps aux | grep -i "econ-radar\|paper-radar\|telegram" | grep -v grep | wc -l

항목

실행 중인 제 파이프라인 프로세스

0개

Step 3. 텔레그램 코드가 상주형인가

알림이 27건 나갔으니 텔레그램 코드는 있습니다. 그 코드가 상주하는지 실행 후 종료하는지를 봤습니다.

grep -ril "telegram" --include='*.py' ~/projects

파일

상주 루프(while Truepollingrun_polling)

econ-radar/scripts/send_push.py

0

paper-radar/scripts/send_push.py

0

econ-radar/scripts/notify_failure.py

0

세 파일 전부 보내고 끝나는 스크립트입니다. 봇이 아니라 발송기입니다.

Step 4. 그럼 27건은 어떻게 나갔나

정리하면 이렇습니다.

항목

알림 발송 기록

27건

예약 실행

0개

상주 프로세스

0개

27번 다 제가 손으로 돌린 것입니다. 자동화한 것은 실행 안쪽이지 실행 자체가 아니었습니다.

Step 5. 24시간 도는 것이 하나 있긴 했다

launchctl list로 확인해 보니 하나가 실제로 떠 있었습니다.

1336    0   ai.openclaw.gateway

오픈클로 게이트웨이입니다. 24시간 돌고 있습니다. 다만 이건 제가 만든 것이 아니라 설치한 것입니다.

제가 만든 것 중 24시간 도는 것은 0개입니다.

결과와 배운 점

측정 결과

항목

알림 발송 기록

27건

crontab 예약 실행

0개

launchd에 등록된 내 서비스

0개 (9개 전부 설치한 앱)

지금 떠 있는 내 파이프라인 프로세스

0개

텔레그램 관련 파이썬 파일

3개

그중 상주 루프가 있는 것

0개

24시간 도는 것 중 내가 만든 것

0개

24시간 도는 것 중 설치한 것

1개 (오픈클로 게이트웨이)

배운 점

  1. 자동화한 것은 실행의 안쪽이었습니다. 수집, 분석, 문서화, 발송이 한 번의 명령으로 다 됩니다. 그런데 그 한 번의 명령을 누가 내리는지는 자동화하지 않았습니다. 27번의 알림은 27번의 제 결심이었습니다. 스터디의 목표가 "멈추지 않는 서버"인 이유가 여기 있습니다.

  2. "돌아가고 있다"를 검증 없이 믿고 있었습니다. 알림이 오니까 도는 줄 알았습니다. 알림은 제가 실행했을 때만 옵니다. 결과물이 있다는 것과 자동으로 만들어졌다는 것은 다릅니다.

  3. 봇과 발송기는 다릅니다. 제 텔레그램 코드는 메시지를 보내기만 합니다. 스터디장의 텔레그램 봇은 메시지를 받습니다.지식 비서, 코딩 발주, 일상 기록이 다 받는 쪽입니다. 받으려면 상주해야 하고, 상주하려면 서버가 필요합니다. 인터페이스가 왜 이 스터디의 주제인지 이제 알겠습니다.

  4. 새 도구를 대하는 기준이 인상 깊었습니다. 스터디장이 "새로운 게 나오면 그대로 쓰기보다 내 시스템에 무엇을 가져올 수 있을지 먼저 생각한다"고 했고, 실제로 헤르메스에서 자가 학습 부분만 떼어 왔습니다. 저는 새 도구가 나오면 통째로 갈아타거나 아예 안 쓰거나 둘 중 하나였습니다.

시행착오

  • 텔레그램·슬랙·디스코드를 한 번에 검색해 27개 파일이 나왔습니다. "알림 채널이 여러 개 붙어 있다"고 쓸 뻔했습니다. 나눠 보니 텔레그램 3개, 슬랙 0개, 디스코드 24개였는데, 그 24개는 전부 discordance(통계에서 쓰는 불일치)라는 단어가 든 테스트 파일이었습니다. 짧은 영단어로 검색하면 도메인 용어에 걸립니다.

  • launchd 9개를 보고 처음에는 "예약 실행이 9개 있다"로 셀 뻔했습니다. 파일 이름을 열어 보니 BlueStacks, Google 업데이터 같은 남의 앱이었습니다. 개수는 소유자를 말해 주지 않습니다.

앞으로의 계획

  • 1주차 과제인 API 서버를 만들 때, 제 파이프라인을 받는 쪽으로 바꾸는 것을 목표로 잡겠습니다. 지금은 보내기만 하니 텔레그램에서 명령을 받는 구조가 첫 걸음입니다.

  • cron부터 걸겠습니다. 서버를 사기 전에 지금 노트북에서라도 예약 실행을 걸어 두면, 27번의 결심이 0번이 됩니다. 하드웨어는 그다음입니다.

  • 스터디장이 두 시간에 만들었다는 세션 모니터링 도구가 제게도 필요합니다. 저도 세션을 여러 개 띄워 놓고 어디서 뭐가 끝났는지 놓칩니다. 규모가 작아 보여 먼저 해 볼 만합니다.

  • 4주가 끝날 때 제가 없어도 하루가 지나 있는 것 하나를 갖는 것이 목표입니다. 지금은 제가 켜야만 하루가 갑니다.

도움 받은 글 (옵션)

  • 23기 24시간 AI 서버 1주차 강의 (이재엽, 온어닷): "지금 이 순간에도 집에서 돌아가고 있다"는 기준, 텔레그램 봇을 인터페이스로 삼은 구성, 헤르메스에서 자가 학습 부분만 떼어 오는 방식, 20개 넘는 세션 상태를 한 화면에 모은 모니터링 도구, 조건을 정하지 않고 일단 API 서버를 받아 보는 실습 방식

2
1개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.