자동화
n8n / 스크립트 / 봇
-
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인 페르소나 기획 브레인스토밍 봇을 만들었다.
읽기 → -
블로그봇 자동 생성 페이지에 SEO 메타 타이틀 주입한 과정
블로그 게시물을 자동으로 생성하는 봇 작업을 하다가, 생성된 페이지들이 검색 엔진에 제대로 노출되지 않는다는 피드백을 받았다. 원인은 단순했다. 봇이 INSERT할 때 metaTitle을 채우지 않고 있었고, 결과적으로 SEO에 필수인 메타 태그들이 빠진 채로 레코드가 저장되고 있었던 것. 이번 작업은 그 공백을 메우는 것이었다.
읽기 → -
본문 자동 분석으로 SEO 메타 태그 생성 자동화
본문 내용으로부터 페이지의 SEO 메타 태그(metaTitle, metaDesc)를 자동으로 생성하는 헬퍼 모듈을 만들었다. 단순한 기능 추가 같지만, 팀의 콘텐츠 관리 효율과 SEO 일관성에 꽤 실질적인 영향을 미친 작업이다.
읽기 → -
정부 연동 데이터 INSERT 시 SEO 메타데이터 자동 생성
gov-bot을 통해 INSERT되는 데이터들에 대해 SEO 메타데이터(metaTitle, metaDescription)를 LLM으로 자동 생성하는 기능을 추가했다. db.py에서 INSERT 로직이 호출될 때 seo_generate 함수를 연쇄 실행하도록 만들어서, 외부 데이터가 들어올 때마다 검색 최적화된 메타데이터가 함께 저장되게 한 것이다.
읽기 → -
봇 워커에 자동 상태 수정 액션 타입을 추가해 반복 수동 작업을 줄이다
봇 액션 워커 스크립트에 새로운 액션 타입인 autofix를 추가했다. 자동화 워크플로우가 단순 알림이나 데이터 조회를 넘어 실제 상태 수정까지 수행할 수 있게 된 작업이다.
읽기 → -
블로그 nginx에서 리다이렉트 롤백과 RSS CORS 문제 해결
blog 도메인의 nginx 설정을 정리하는 과정에서, 앞서 준비했던 301 리다이렉트를 되돌리고 동시에 RSS 피드의 CORS 문제를 해결했다. 겉보기 단순한 설정 변경이지만, 그 뒤에는 의사결정의 변화와 우선순위 조정이 있었다.
읽기 → -
크론 스크립트 백업과 실행 권한을 문서화해 운영 불확실성을 줄였다
프로덕션 환경에서 24/7 돌아가는 자동화 스크립트들의 설정을 백업하고 실행 권한 요구사항을 명확히 문서화했다.
읽기 → -
SEO 메타데이터 검증 크론을 코드로 버전 관리하기 시작했다
SEO 메타데이터 검증 크론 작업의 설정을 코드 저장소에 명시적으로 추적하는 작업을 했다. 자동화 작업(chore)이라고 표기했지만, 사실 운영 안정성과 팀 커뮤니케이션에 꽤 중요한 변경이었다.
읽기 → -
자동화 봇 브로드캐스트의 깨진 URL을 ID 기반으로 수정
money-bot이 보내는 broadcast 메시지의 URL을 레거시 형식 /{slug}/에서 새로운 형식 /p/{id}/로 변경했다. 작은 것 같지만 자동화 시스템의 신뢰성을 크게 좌우하는 변경이었다.
읽기 → -
nginx 사이트 자동 발견·등록으로 운영 수동 작업 제거
새로운 nginx 사이트를 수동으로 등록하는 번거로움을 줄이기 위해 자동 발견·등록 로직을 _lib에 추가했다.
읽기 →