자동화
n8n / 스크립트 / 봇
-
자정 스프린트: Play+ASC 양쪽 스토어 제출 자동화와 80장 스크린샷
새벽 0시가 막 넘은 시점, 화면에 떠 있던 터미널이 세 개였다. 하나는 Play Developer API 응답을 스트리밍하고 있었고, 하나는 flutter test --tags screenshot 로그가 쌓이고 있었고, 나머지 하나에선 App Store Connect 대시보드를 새로고침했다. 그날 새벽의 목표는 vidpress 앱을 Play와 ASC 양쪽
읽기 → -
파이프라인 이중집계 차단과 단말 자동화 마무리
저녁 6시에 첫 커밋을 찍고 자정 가까이까지 이어진 이 시간대는 방향이 처음부터 명확했다. 새 기능을 추가하는 것보다, 기존 구조에서 언제 터질지 모르는 지뢰를 먼저 제거하는 흐름이었다. PV 집계 파이프라인의 이중집계 구조를 완전히 끊어내는 것, stocks.opsvoro.com(ExcelStocks)을 인벤토리에 공식 편입하는 것, nyangle 단말
읽기 → -
새벽 6시간, SEO 파이프라인과 블로그 자동화를 전면 손질한 날
자정 넘어 시작한 작업이 해 뜨기 전까지 이어졌다. 처음엔 단순한 SEO 점검으로 시작했는데, 하나 손대면 옆이 보이고, 옆을 손대면 또 다른 구멍이 보이는 특유의 연쇄가 새벽 내내 이어졌다. 크게 세 덩어리로 정리된다. 사이트맵 위생 전수점검, 블로그 발행 파이프라인 대수술, 그리고 Indexing API 핑 자동화와 안드로이드 배포 마무리.
읽기 → -
에뮬레이터 자동화 스크립트 대수술
저녁 6시부터 자정까지, 이 시간대의 핵심은 단 하나였다. 여러 Android 앱을 에뮬레이터에서 자동 설치/재설치하는 스크립트들이 제각각 흩어져 있던 걸 하나씩 정리하고, 거기서 터진 버그들을 잡는 것. 릴리즈 날짜가 당겨지는 상황에서 수동으로 에뮬 띄우고, 앱 설치하고, 다시 세팅하는 반복 작업이 너무 많았다. 이걸 스크립트화해두지 않으면 다음 사람(미
읽기 → -
소셜 봇 AI 슬롭을 걷어내고 팩트가드를 붙인 하루
아침 일찍 소셜 자동 포스팅 봇 로그를 열어보니 생성된 카피가 영 마음에 안 들었다. 내용이 틀린 건 아닌데, 뭔가 광고 문자 같은 느낌이 났다. "놓치지 마세요!", "한정 기회!", 이모지 떡칠, 라벨 접두어... 전형적인 AI 슬롭(AI slop)이었다. 이걸 그대로 블루스카이에 올리면 계정 신뢰도가 쌓이기는커녕 스팸 느낌만 줄 게 뻔했다. 이 시간대
읽기 → -
새벽에 VAT 폼을 뜯어고치고 구글시트 자동 동기화를 붙인 날
새벽 작업치고는 꽤 무거운 내용이 쌓였다. 시작은 VAT 입력 폼의 드롭다운 UX가 영 불편하다는 데서 출발했고, 거기서 파생돼 구글시트 자동 동기화 파이프라인까지 만들게 됐다. 작업이 끝나고 보니 커밋이 여섯 개, 그 중에 fix가 두 개인데 둘 다 스스로 파놓은 구멍을 막은 것이라 민망하긴 하다.
읽기 → -
App Store 매출 수집 파이프라인을 짜고 대시보드에 연결한 아침
오전 6시에 슬랙 알림 끄고 제일 먼저 한 건 Apple App Store 매출 수집기였다. 그동안 매출은 App Store Connect 웹 UI 들어가서 눈으로 보고 있었는데, 그게 쌓이기 시작하니까 더 이상 수동으로 하기가 싫어졌다. 어드민 대시보드에 KPI 카드 하나 박아두면 아침마다 들어가도 되고, 나중에 트렌드도 볼 수 있겠다 싶어서 수집기부터
읽기 → -
새벽 봇 버그 두 개와 어드민 대청소
새벽 0시에 들어와서 제일 먼저 건드린 건 vtuber_guard였다. 며칠 전부터 스캔 로그가 뭔가 이상하다는 느낌이 있었는데, 오늘 새벽에 드디어 재현 조건이 손에 잡혔다. 두 가지 버그가 사실 서로 다른 레이어에 있었는데 같은 파일에 있어서 한 세션에 같이 처리했다.
읽기 → -
산문봇 AI 티 방어 코드를 단일 모듈로 통합한 새벽
새벽 내내 손댄 건 새로운 기능이 아니었다. 이미 동작하는 코드들 사이에 쌓인 기술 부채를 하나씩 걷어내는 시간이었다. 가장 오래 걸린 건 humanizer 인라인 코드 정리였고, 그다음엔 SEO 파이프라인 쿼터 확장, 포트폴리오 카드 재편까지 다녔다. 단 하나의 주제로 묶기엔 좀 산만하게 보일 수 있는데, 뒤에서 얘기하겠지만 결국 같은 방향의 작업들이었다
읽기 → -
AI 글 품질 파이프라인과 색인핑 자동화를 함께 다듬은 저녁
저녁 6시쯤 자리에 앉았을 때 머릿속에 있던 건 두 가지였다. 블로그 자동 발행 파이프라인에서 여전히 새어나오는 AI 냄새를 어떻게 체계적으로 막을 것인지, 그리고 GSC 색인핑이 하루 200건 쿼터를 낭비 없이 쓰도록 만들 수 있는 방법이 무엇인지. 두 문제는 표면적으로 전혀 달라 보이지만, 돌이켜보면 같은 근본 질문에서 나온 것이었다. 파이프라인이 "그
읽기 → -
봇 오집계와 도메인 불일치, 두 버그를 한 번에 잡다
오전 10시. 대시보드를 열었더니 슬렉스 블로그 조회수가 0으로 떠 있었다. 처음엔 트래픽이 없나 싶었는데, 로그 파일에는 분명히 접근 기록이 쌓이고 있었다. 뭔가 집계 로직이 틀어진 거다. 파고들어 보니 버그가 두 개였고, 두 버그가 서로 다른 레이어에서 각각 조용히 터지고 있었다.
읽기 → -
Claude CLI에 텍스트 넘길 때 대시가 옵션으로 둔갑하던 버그
새벽 2시, 파이프라인 로그를 훑다가 조용히 끊겨 있던 스크럽 단계를 발견했다. 에러 메시지는 처음엔 전혀 엉뚱한 방향을 가리켰다.
읽기 → -
초장문 텍스트 정밀 정제 파이프라인 구축기
새벽 1시, 슬슬 오늘 쳐내야 할 것들을 다 마무리했다 싶었는데 결국 이 녀석을 건드리게 됐다. 오래전부터 눈에 걸렸던 스크러빙 로직 문제 — 40,000자짜리 초장문 텍스트에서 1인칭 표현을 제대로 걸러내지 못하고 있었다.
읽기 → -
스크럽 워커를 쪼개고, 스스로 깨어나게 만든 밤
자정 무렵이었다. 스크럽 스크립트 하나가 점점 무거워지고 있었다. 처리 대상이 늘어날수록 단일 프로세스로 돌리는 건 한계가 뚜렷했고, 설상가상으로 외부 API 쪽 사용량 제한에 걸리면 그냥 죽어버렸다. 재개는 수동이었다. 그걸 이날 한 번에 고쳐야겠다고 마음먹었다.
읽기 → -
새벽 두 시, 자동 발행 파이프라인이 조용히 죽어 있었다
새벽 두 시에 알림이 없다는 게 문제였다. 정확히는 — 알림이 와야 하는데 오지 않았고, 발행도 되지 않았다. 스케줄러가 돌고 있다는 착각 속에 파이프라인은 이미 한참 전부터 멈춰 있었다.
읽기 → -
블로그 자동화 파이프라인을 통째로 갈아엎은 새벽
왜 바꿨나 — "커밋마다 글 하나"의 한계
읽기 → -
새 도메인 rate-limit 자동 적용으로 보안 실수 없애기
신규 도메인을 온보딩할 때마다 수동으로 Cloudflare rate-limit 설정을 하던 과정을 자동화로 전환했다. 문서도 정책도 함께 정리해서 "신규 도메인은 무조건 rate-limit이 적용된다"는 명확한 기본값을 만들었다.
읽기 → -
주간 주기 자동 갱신 작업, 문서화 추가
CLAUDE.md에 주간 통계 자동갱신의 cron 스케줄과 실행 스크립트를 기록했다. 작은 변경처럼 보이지만, 팀의 자동화 작업들을 가시화하는 중요한 스텝이었다.
읽기 → -
렌더링 대량 백필을 4배 단축
렌더링 작업의 백필을 처리할 때, sleep 시간을 동적으로 조절할 수 있는 --fast 플래그를 추가했다. 1회성 대량 작업에서는 sleep을 0.7~1.5초로 단축해서 처리 시간을 크게 줄이고, 반복 실행되는 cron 작업에서는 기본값 3~5초를 그대로 유지해서 시스템 부하를 균형 있게 관리하는 구조다.
읽기 → -
백그라운드 루프 중단을 자동으로 감지하기
정기적으로 돌아야 하는 배경 작업이 조용히 멈추면 서비스는 수일간 대응 없이 데이터가 낡아간다. 이번에 학습/SEO 루프의 생사를 자동으로 감시하고 Discord와 Telegram으로 즉각 알람하는 health-monitor 기능을 추가했다. 팀이 야간이나 주말이라도 멈춤을 놓치지 않도록.
읽기 →