2026/08/18 3

launchd, screen으로 디스코드 봇 24시간 상주시키기

얼마 전, 클로드 기반의 디스코드 챗봇을 하나 만들었다. 꽤 쓸만했다.이걸 내 맥에서 24시간 내내 돌리고 싶었다. 내 터미널을 점유하지 않으면서, 맥을 껐다 켜도 자동으로 다시 살아나는 방식으로 말이다.macOS 환경에서 데몬을 띄우는 표준 방식은 launchd를 쓰는 거다. 그리고 터미널 기반 앱을 백그라운드에서 돌리려면 screen이 딱이지. 완벽한 조합이라고 생각했다.시작은 창대했지만... 뭐가 문제였을까? 🤔자신만만하게 launchd plist 파일을 만들었다. 봇 실행 스크립트를 지정하고, KeepAlive 옵션도 넣었다.그런데 뭔가 이상했다. 봇이 디스코드에 '온라인'으로 뜨긴 하는데, 메시지에 전혀 반응이 없는 거다.혹시나 싶어 screen -r로 세션에 들어가 봤다. 화면은 깨져있었고,..

맥·홈서버 2026.08.18

티스토리 자동 발행, Playwright로 구현하기 (오픈API 종료 대응)

애드센스 승인을 목표로 티스토리 블로그를 꾸준히 운영하기로 했다. 글쓰기 과정을 효율화하면 좋겠다는 생각에 자동화를 구상했다. 처음엔 당연히 공식 API가 있을 줄 알고 찾아봤다.티스토리 API, 벌써 죽었니? 😱문제는 여기서부터 시작됐다. 있을 거라 확신했던 티스토리 오픈 API는 이미 서비스 종료 상태였다.문서를 찾아보니 모든 엔드포인트에 deprecated 딱지가 붙어 있었다. 이걸 확인하는 순간 머리가 띵했다.그렇다면 남은 길은 브라우저 자동화뿐. 바로 Playwright를 꺼내 들었다.예상치 못한 장벽에 부딪혔지만, 뭐, 개발자에게 이런 건 일상이다.덕분에 새로운 도전을 시작했다.카카오 로그인 세션, 왜 자꾸 말썽일까? 🤔Playwright로 처음 시도한 건 헤드리스 모드였다. 백그라운드에서..

자동화 삽질기 2026.08.18

Mac mini AI 영상 복원, 스왑 지옥 탈출법

Mac mini로 AI 영상 복원 파이프라인을 돌리다 겪은 일이다. 처음엔 야심 차게 수 시간짜리 영상 하나를 통으로 넣고 돌렸다.애플 실리콘의 MPS(Metal Performance Shaders) 성능을 믿었고, 48GB 램이면 충분하리라 생각했다. 하지만 몇 시간쯤 지나면 여지없이 스왑 메모리가 48GB까지 차오르고, macOS가 프로세스를 SIGKILL로 죽여버리는 거였다. 😱 문제는 결과물이었다. 아니, 이게 뭐야?문제는 결과물이었다. mp4 파일은 헤더에 moov atom이라는 정보가 있어야 한다. 이 정보는 영상의 전체 길이, 트랙 정보 등을 담고 있는데, 프로세스가 강제 종료되면 이 moov atom이 제대로 기록되지 않아 영상 전체가 열리지 않았다.몇 시간을 돌렸는데 아무것도 건지지 ..

AI·로컬 LLM 2026.08.18