자동화
n8n / 스크립트 / 봇
-
대량 시드 스크립트의 제목 필드 오염 버그 수정
대량 데이터 생성 스크립트에서 제목 필드에 커밋메시지 값이 들어가는 버그를 발견하고 수정했다. 단순해 보이는 필드 매핑 오류였지만, 자동화된 작업이었기에 얼마나 많은 레코드가 오염될 수 있었을까 생각하니 체계적인 검증의 중요성이 느껴졌다.
읽기 → -
macOS launchd로 hedvion 저장소 자동 동기화 구현
팀의 개발 워크플로우에서 brainstorm 서비스로 푸시가 들어올 때마다 관련 저장소들을 자동으로 동기화해야 했다. 손으로 매번 동기화 명령어를 치는 것이 반복 작업이었고, 특히 로컬 개발 환경에서 이 과정이 자동화되면 팀의 컨텍스트 스위칭을 크게 줄일 수 있겠다고 판단했다. 그래서 macOS의 launchd를 활용해 이 작업을 자동으로 처리하는 에이전트
읽기 → -
발행 봇 알림을 실패 시에만 울리도록 개선
요 며칠 전 자동화 발행 봇의 알림 정책을 손봤다. 그동안 정상 완료했을 때도 매번 알림을 보내던 걸 끄고, 실패(fail count > 0)가 발생했을 때만 팀에 알리도록 바꿨다. 작은 변경처럼 보이지만, 운영 자동화 시스템의 신호-잡음 비율(signal-to-noise ratio)을 개선하는 꽤 중요한 결정이었다.
읽기 → -
스트리밍 채팅과 온보딩 마찰을 한 번에 개선한 배포 경험
한 번에 스트리밍 채팅, 호감도 연출, 자동 셀카, 큰 얼굴 온보딩까지 네 가지 기능을 함께 배포했다. 규모가 있는 변경인 만큼 팀 전체의 조율과 우선순위 결정이 필요했던 작업이다. 왜 이 모든 걸 한 번에 했는지, 그 과정에서 뭘 배웠는지 정리해보자.
읽기 → -
사이트맵 최신 발행일 자동 동기화로 SEO 크롤링 개선
처음엔 별거 아닌 것처럼 보였다. 블로그 피드 생성 스크립트가 RSS와 sitemap을 만들 때, sitemap의 <lastmod> 타임스탐프를 최신 글의 발행 날짜로 자동 갱신하는 기능 추가였거든. 근데 이 작은 변경이 지금까지 왜 미루고 있었는지, 또 어떤 이유로 이제야 우선순위를 올렸는지 되짚어보면 꽤 타당한 배경이 있다.
읽기 → -
보험·금융 토픽 자동보충이 일주일간 멈춘 원인과 재발 방지법
지난주 모니터링 대시보드를 확인하다가 이상한 신호를 포착했다. 토픽 자동보충 시스템이 6월 3일부터 0건을 발행하고 있었다. 보험/금융 도메인의 자동 발행 기능이 일주일을 꼬박 작동하지 않은 것. 문제는 생각보다 단순했다—봇 시스템이 마이그레이션되면서 디렉터리 경로가 /opt/X-bot에서 /opt/bots/X로 바뀌었는데, 우리의 자동화 스크립트들은 여전
읽기 → -
자동액션 워커·트래픽·SEO 감시의 판단 모델을 Opus로 격상
자동액션 트리거의 judgment 호출을 Claude Sonnet에서 Opus 4.8로 업그레이드했다. 세 곳의 워커/감시 스크립트에서 의사결정을 담당하는 부분을 일괄 변경한 작업이다.
읽기 → -
OAuth 인증 크론 주기를 30분으로 단축해 장애 감지 시간을 줄인 이야기
지난주 OAuth 인증 체크 크론이 23시간 동안 401 에러를 놓쳤다. 단순한 통신 실패가 아니라, 시스템이 정상 작동하는 줄 알았는데 실제로는 외부 인증 토큰이 만료되거나 갱신되지 않은 상태였다. 문제 대응 이후 우리 팀은 README에 문서화되어 있던 auth-check 크론의 실행 주기를 재설정했다.
읽기 → -
인증 체크 크론에 백업을 추가해 자동화 신뢰도를 높인 과정
두 개의 인증 체크 크론(codex, claude)에 대한 백업을 추가했다. 일반적으로 단순 파일 추가처럼 보이지만, 운영 관점에서는 자동화 시스템의 신뢰도를 한 단계 높이는 작업이다.
읽기 → -
cron 자동화의 경보 노이즈를 줄여 팀 알림 피로 해소
cron으로 운영하는 백그라운드 자동화 작업들에서 불필요한 경보와 로그가 쌓여 있었다. 보통 중요하지 않은 상황까지 알림을 보내다 보니 진짜 대응이 필요한 이벤트를 놓치거나 경보 피로(alert fatigue)가 생기는 악순환이 반복됐다. 이번에 두 가지 노이즈 소스를 걸러내는 작업을 했는데, 과정에서 느낀 자동화 시스템 설계의 핵심 원칙들을 정리해본다.
읽기 → -
크론 환경에서 인증 체크 스크립트 타임아웃 버그 수정
auth-check 스크립트가 cron 환경에서 자꾸 실패한다는 보고가 들어왔다. 직접 실행하면 멀쩡하게 돌아가는데 cron job으로 올라가면 FAIL이 떨어지는 현상. 원인은 stdin 대기였다.
읽기 → -
브레인스토밍 엔진의 레포 라우팅 버그를 잡고 배포 자동 롤백까지 구현
최근에 brainstorm_exec 시스템의 code_change 레포라우팅에서 버그를 찾아내서 수정하고, 동시에 배포 프로세스를 풀오토로 만드는 작업을 했다. 변경 파일은 scripts/brainstorm_exec.py 하나지만, 실제로는 여러 계층의 문제를 동시에 해결하는 과정이었다.
읽기 → -
브레인스토밍 모듈에 방어·성장 처방과 저장소 라우팅 구조를 도입한 이유
최근에 자동화 도구의 제안을 체계적으로 분류하고 라우팅하는 구조를 brainstorm.py에 추가했다. 단순해 보이지만, 이 작은 설계가 팀의 의사결정 과정에 꽤 유의미한 영향을 준다고 생각한다.
읽기 → -
블로그 배치 처리 속도와 파싱 정확도를 동시에 높인 방법
배치 작업은 늘 이중 과제다. 하나는 속도, 하나는 정확도인데, 이번엔 둘 다 개선할 수 있었다. 블로그 글 강화 배치의 v2로 나아가면서 ThreadPool 기반의 병렬 처리와 구분자 파싱 로직을 새로 적용했고, 그 과정에서 배치 시스템을 어떻게 진화시켜야 하는지 다시 생각해볼 기회였다.
읽기 → -
크론 작업을 코드로 버전 관리해 운영 추적성을 확보한 방법
운영 자동화는 우리 시스템의 등뼈다. 그런데 그 등뼈를 관리하는 방식이 종종 미흡했다. 이번에 brainstorm-auto 같은 크론 작업들을 코드 저장소에서 버전 관리하도록 정비했고, 그 결과가 생각보다 크다.
읽기 → -
신호 악화 감지 시 팀 회의 자동 소집 기능 도입
신호 최악 상황을 감지하면 자동으로 팀 회의를 개최하는 기능을 추가했다. 기존에는 모니터링 대시보드를 누군가 먼저 확인해야 했고, 그 사람이 상황을 판단한 후 다시 팀에 알려야 했다. 그 시간 차이가 생각보다 크다는 걸 깨달았고, 이번 작업은 그 간극을 자동화로 메우려는 시도였다.
읽기 → -
브레인스토밍 아이디어 품질 신호 수집 자동화로 의사결정 속도 개선
브레인스토밍 시스템에서 아이디어 품질을 판단할 때 수동으로 신호를 수집했던 과정을 자동화했다. 조회수, 검수결과, GSC 데이터를 자동으로 수집하는 기능을 brainstorm.py에 추가하면서 배운 점들을 정리해본다.
읽기 → -
SEO 메타 자동 생성으로 콘텐츠 팀 배포 병목 해소
SEO 메타 정보를 자동으로 생성하고 개선하는 실행기(_exec_seo)를 scripts/brainstorm_exec.py에 추가했다. 단순해 보이는 자동화 도구지만, 이 과정에서 우리 팀이 매뉴얼 작업을 어떻게 체계화하고 스케일하는지에 대해 다시 생각하게 됐다.
읽기 → -
의사결정과 실행 간격을 비동기 워커로 자동화한 이야기
아이디어나 정책 결정이 나온 후, 그걸 실제 시스템에 반영하는 과정이 얼마나 번거로운지 아는가. 팀원들이 회의에서 "이 기능 켜자" "이 정책 적용하자"라고 결정하면, 누군가 수동으로 각 시스템에 명령을 날리고, 설정을 바꾸고, 배포를 해야 한다. 결정은 빠르지만 실행은 느리고, 그 사이 실수가 끼어든다.
읽기 → -
6인 페르소나 브레인스토밍 봇으로 기획 사각지대 해소
기획 단계에서 가장 자주 마주치는 문제 중 하나가 "관점의 편협함"이다. 팀이 커질수록 의사결정 테이블에는 비슷한 배경의 사람들만 앉게 되고, 결국 "우리가 놓친 각도"는 점점 늘어난다. 이 문제를 조금이라도 체계적으로 해결하려고 6인 페르소나 기획 브레인스토밍 봇을 만들었다.
읽기 →