자동화
n8n / 스크립트 / 봇
-
운영 자동화와 스팸 차단 정책을 문서로 정리
특정 사이트의 k2 버전 운영 정책을 한군데 정리했다. 스팸 방지부터 자동 처리까지, 장기간 운영하면서 축적된 규칙들을 docs 에 명문화한 작업이다.
읽기 → -
스케줄 범위 확대할 땐 '정상적인 이상'도 문서화하라
크론 작업 범위를 25개에서 35개로 확대하고, 그 과정에서 도메인 특성을 CLAUDE.md에 명시했다. 간단해 보이지만 이 작은 문서화 항목이 팀의 많은 오해와 불필요한 버그 조사를 막을 수 있다.
읽기 → -
자동화 봇 운영현황을 문서에 담다
한 이커머스 서비스 (이미지·스트림 기반 콘텐츠)의 자동화 시스템이 꽤 복잡해졌다. 탤런트 145명, 그들을 관리하는 봇 4종, 주기적으로 도는 cron 작업들, 그리고 사용자 요청 인터페이스. 이 모든 것이 제각각 문서화되거나 머릿속으로만 떠다니던 상황을 한 번에 정리하는 작업을 했다.
읽기 → -
자동 기사 생성 품질을 높이는 다층 처리 완성
자동화 봇의 기사 생성 파이프라인에서 humanizer의 1층과 2층 처리를 연결했다. 영문 콘텐츠의 자연스러움을 높이기 위해 초안 생성에서 고도화 개선으로 이어지는 체인을 완성한 작업이다.
읽기 → -
상 목록 조회가 화면에 안 띄우던 alias 예약어 버그
지난주에 상 조회 기능 데이터가 DB에서는 정상 반환되는데 화면에 나타나지 않는 버그를 잡았다. 원인은 SQL 쿼리의 alias가 DB의 예약어였기 때문. 백틱으로 처리해서 해결했는데, 이런 류 버그가 왜 자꾸 튀어나오는지, 어떻게 더 일찍 catch할 수 있을지 생각해보게 됐다.
읽기 → -
그룹 페이지에 수상 내역 추가로 프로필 완성도 올려
kpop 그룹의 프로필 페이지에 수상 정보를 추가했다. 적재 봇, UI 컴포넌트, 다국어 번역까지 한 번에 정리한 작업이었는데, 각 레이어에서 뭘 챙겨야 하는지 좋은 학습이 됐다.
읽기 → -
정산 도메인 규칙 분산을 단일진실로 통합 관리
도메인별 지침이 여러 곳에 흩어져 있는 문제를 정리했다. 특히 결제·정산(payment/settlement) 같은 금융 도메인은 변경이 잦고 실수 여지가 크기 때문에, 진실의 출처(single source of truth)를 명확히 하는 게 핵심이다.
읽기 → -
자체 칼럼 시스템으로 콘텐츠 운영 자동화
자체 칼럼(articles) 플랫폼을 구축하고, 디스코그래피 콘텐츠를 자동으로 생성하는 봇을 만들었다. 기존에는 콘텐츠 업데이트가 주로 수동 작업이거나 외부 소스에 의존했는데, 팀 규모가 커지면서 이런 반복적인 운영 비용이 계속 늘어나고 있었다.
읽기 → -
레거시 자동화 도구는 문서로 정리한다
docs/seo-infra.md에 archived 상태의 money-bot을 추가하고, orphan CLAUDE.md 커밋이 정상 케이스임을 명시했다. 작은 변경 같지만 팀 문서화 정책과 프로젝트 생명주기 관리에서 꽤 중요한 패턴이라 생각해서 기록해본다.
읽기 → -
봇별 지침 문서화로 운영 일관성 확보
gov-bot이라는 새 서버 봇을 위해 CLAUDE.md 파일을 생성했다. 한 줄짜리 commit처럼 보이지만, 이건 우리 멀티 봇 환경에서 지침 관리를 체계화하는 중요한 스텝이다.
읽기 → -
서버 봇 지침 분리로 자동화 시스템 단정화
money-bot 전용 CLAUDE.md를 생성하고 서버 환경에서 검증했다. 이 작업은 단순해 보이지만 팀의 자동화 시스템이 성장할 때 꼭 필요한 구조 정리였다.
읽기 → -
데이터 적재량을 매주 자동으로 팀에 공유하기
discover 시스템의 적재량(데이터 인제스트 규모) 집계를 주간 cron으로 자동화하고, 매주 디스코드에 리포팅하는 기능을 추가했다. 사실 단순한 모니터링 자동화 같지만, 뒤에는 팀의 운영 효율과 의사결정 가시성을 높이려는 의도가 있었다.
읽기 → -
API 429 throttle을 정책 준수와 백오프로 자동 복구
Wikimedia API와 상호작용하는 그룹 발견/시드 봇이 갑자기 자주 실패하기 시작했다. 원인은 API 요청 제한(throttle)에서 나온 429 응답을 제대로 처리하지 못한 것. Wikimedia 같은 공개 API는 사용 정책이 엄격한데, 당시 봇은 User-Agent를 명시하지 않았고, 429를 받아도 지능형 재시도가 없었다. 이번 작업으로 정책
읽기 → -
그룹 수집 요청 과다로 인한 API 오류 차단
외부 서비스와 연동하는 자동화 봇을 운영하다 보면 정기적으로 데이터를 수집해야 하는데, 이때 가장 자주 마주치는 문제가 API 레이트 제한이다. 이번엔 그룹 데이터를 수집하는 seed_groups 자동화에서 발생하던 429 에러(Too Many Requests)를 해결하기 위해 요청 throttle을 상향하고, 동시에 불필요한 데이터를 조기에 필터링했다.
읽기 → -
음악 발견 봇의 장르별 노이즈 필터링 정확도 개선
음악 발견 시스템에서 특정 신호가 **없을 때**의 필터링이 제대로 동작하지 않던 문제를 수정했다. 사소해 보이지만, 자동화 시스템에서 "조건부 처리"의 함정을 보여주는 좋은 사례다.
읽기 → -
한국 시그널 중심화로 발견 엔진 정확도 개선
그룹 발견 봇이 관련성 없는 해외 신호로 노이즈가 심했다. discover_groups.py 에서 해외 신호가 존재할 때만 제외하는 로직을 추가해서 재현율을 높였다. 핵심은 "단순 제외"가 아니라 "한국 스텁은 절대 버리지 않는다"는 전략이었다.
읽기 → -
웹 크롤링 정확도 높이고 속도 제한 회피
한국 그룹을 자동 발견하는 과정에서 두 가지 문제가 누적돼 있었다. 검색 결과에 부적절한 그룹들이 섞여 들어오는 것과, 외부 위키 API를 너무 빨리 두드려서 속도 제한(429)에 걸리는 것. 이번 fix에서 relevance 필터와 throttle 메커니즘을 함께 넣어서 정확도와 안정성을 동시에 높였다.
읽기 → -
자동 그룹 발견 중복 제거
봇이 그룹을 자동 발견할 때 괄호가 있는 표제어 중복을 제거하고, 서브유닛까지 포함되는 문제를 걸러냈다.
읽기 → -
신규 그룹을 자동 발견하는 봇 만들기
wiki에 올라오는 신규 그룹들을 수동으로 일일이 찾아 등록하는 프로세스를 자동화하는 discover_groups 기능을 만들었다. 연도별 카테고리를 주기적으로 스캔해서 발견된 그룹들을 시스템에 자동으로 반영하는 방식이다.
읽기 → -
영어 문서 없는 신인 그룹도 자동으로 커버
seed_groups 자동화 로직을 다루던 중, 신인(마이너) 그룹들의 자료 수집이 깨지는 케이스를 만났다. 원인은 단순했는데, 봇이 영어 Wikipedia만 참고하고 있었기 때문이다. 한국어 문서도 함께 찾도록 fallback을 추가해서 커버리지를 늘렸고, 이 과정에서 배운 몇 가지 패턴을 정리한다.
읽기 →