자동화
n8n / 스크립트 / 봇
-
이미지 배치 자동화로 발행 파이프라인 단순화
캐릭터 섹션의 이미지들을 자동으로 배치하는 기능을 lib_publish.js에 구현했다. 소제목별로 균등하게(약 3개씩) 이미지를 분배하는 로직인데, 이렇게 하니까 발행 시 수동 배치에 들이던 시간이 확 줄었다.
읽기 → -
발행 전 드라이런으로 형식 오류 선제 차단
포스트 발행 시스템에서 마크다운 스타일링과 메타데이터 처리를 자동화하는 작업이었다. 단순하지만 꽤 중요한 개선인데, 여러 개의 기능 개선을 한 커밋에 묶은 이유부터 풀어보자.
읽기 → -
블로그 포스트 자동 발행 도구 완성
블로그 자동 발행기를 구축했다. 네이버 블로그에 포스트를 올리는 작업을 반복적으로 수행하던 수고를 덜기 위한 도구다. 새로운 기능 몇 개(capture, cat_explore, del, del_explore 등)를 추가하고 설정을 정비했다.
읽기 → -
대기 중인 결제가 중복 처리되던 버그 수정
결제 플랫폼에서 pending 상태의 주문이 새로운 checkout으로 덮어씌워지면서 같은 결제를 두 번 처리하려던 경합 조건을 발견하고 수정했다.
읽기 → -
은행 자동선택으로 가상계좌 발급 간소화
가상계좌 발급 시 사용자가 직접 은행을 선택하는 UI를 제거하고, 결제 플랫폼의 자동 결정 로직으로 통일했다. 결제 흐름 단순화와 UX 개선이 목표였고, 여러 선택지 관리에서 오는 복잡성을 한 번에 해결할 수 있는 좋은 타이밍이었다.
읽기 → -
송금 실패 시 파트너 잔액 복구 프로세스 개선
결제 플랫폼의 출금 송금이 실패했을 때 파트너 계정의 잔액을 제대로 복구하고, PG가 비활성화된 상태에서 배치가 즉시 실패하도록 처리를 보강했다. Codex 정적 검증 도구에서 6차 검증 시 지적한 사항들을 개선한 작업인데, 돌아보니 이 부분이 생각보다 많은 엣지 케이스를 감싸고 있더라.
읽기 → -
새 결제 경로 추가, 구 webhook 5개 정리
웰컴 카드 온보딩과 정기 결제 빌링 경로를 지원하면서, 동시에 기존 webhook 5개를 비활성화했다. 결제 플랫폼을 점진적으로 개선하는 과정에서 마주하는 전형적인 마이그레이션 작업이었다.
읽기 → -
특가 프로모션에 실시간 카운트다운 추가
오늘만 제공되는 특가 프로모션에 카운트다운 타이머를 추가했다. 사용자의 로컬 시간대 기준으로 자정까지 몇 시간 몇 분 몇 초가 남았는지 HH:MM:SS 형식으로 실시간 표시하고, 자정이 지나면 자동으로 리셋되는 기능이다.
읽기 → -
골든존 키워드 자동적재로 일일 리포트 완성도 높이기
Google Search Console(GSC)에서 골든존 키워드를 자동으로 수집해서 일일 리포트에 반영하는 기능을 추가했다. 두 개의 스크립트를 새로 만들고 데이터 파이프라인을 정렬하는 작업이었다.
읽기 → -
높은 노출 기회 키워드 최우선으로 처리
발행봇의 키워드 처리 전략을 개선했다. Google Search Console(GSC) 데이터를 기반으로 "골든존" 키워드들—이미 검색 결과에 노출되고 있지만 순위가 아직 낮아 클릭 기회가 있는 키워드들—을 최우선으로 소비하도록 했다. keyword-discovery/kw_pool.py에 우선순위 로직을 추가한 작업인데, 내가 한 결정과 거기서 배운 점들을
읽기 → -
인증파일 root 소유 사고 자동 방어
인증 관련 스크립트들이 root 권한으로 실행되면서 인증파일의 소유권이 뜻하지 않게 root로 변경되는 사고가 발생했다. 평소엔 괜찮다가 특정 배포나 자동화 작업 직후 서비스가 갑자기 응답하지 않는 상황이 생기는데, 원인을 추적해보면 대부분 인증파일 접근 권한 문제더라. 이번에 이런 상황을 미리 감지하고 자동으로 복구할 수 있도록 방어 로직을 추가했다.
읽기 → -
가상계좌 정보 조작 방지
결제 플랫폼에서 가상계좌 발급 정보를 클라이언트가 마음대로 설정할 수 있던 문제를 서버 권위로 고쳤다.
읽기 → -
블로그 콘텐츠를 Dev.to에 자동 배포하기
블로그에 글을 올릴 때마다 손으로 Dev.to에도 동일한 내용을 복붙해서 올리던 반복 작업을 없애기로 했다. bot/generate.py에 Dev.to 신디케이션 로직을 추가해서 블로그 배포와 함께 자동으로 Dev.to에 콘텐츠가 올라가도록 정리했다.
읽기 → -
자동화 봇의 중복 청구를 원자적으로 처리
운영 자동화 시스템을 만들다 보면, 매일 반복되는 작업들을 배치 처리하는 **일일 봇**을 필요로 한다. 이번 작업은 그 봇이 여러 카테고리의 청구를 처리할 때 발생하는 중복 문제를 정면으로 마주쳤다. categoryId 추가, 인터리브 클러스터 선택, 원자적 중복 제거—세 가지 개선을 한 번에 적용했다.
읽기 → -
결제 웹훅 발신자 위조 공격 차단 강화
결제 플랫폼에서 들어오는 웹훅의 발신자 IP를 검증하는 방식을 개선했다. XFF(X-Forwarded-For) 헤더를 다룰 때 보안 취약점이 있었는데, 맨 뒤 값(위조 불가능한 IP)을 사용하도록 변경한 작업이다.
읽기 → -
사이트맵 크롤링 효율 높인 HEAD 메서드 지원
이번 주는 블로그 사이트의 검색 엔진 최적화(SEO) 관점에서 작은 하지만 의미 있는 두 가지를 손봤다. sitemap, robots.txt, RSS 피드 엔드포인트에서 HTTP HEAD 메서드를 지원하고, 정적 sitemap entries에 마지막 수정 시간(lastmod)을 추가했다.
읽기 → -
결제 webhook 정산·환불·보안 통합 완료
지난번부터 남겨둔 결제 플랫폼 webhook 처리 기능들을 마무리했다. 정산 후처리, 환불 시 역분개, IP 토글을 통한 접근 제어까지—세 가지 핵심 기능이 모두 구현되면서 webhook 통합이 한 단계 완성된 느낌이다.
읽기 → -
백업 로그인 중 cron 동시 실행 방지
백업 로그인 기능을 추가하면서 동시성 제어의 중요성을 다시 한 번 깨달았다. 계정 관리 스크립트가 자동화되면서 여러 작업이 병렬로 실행될 가능성이 높아졌고, 특히 사용자가 수동으로 백업 로그인을 수행 중일 때 cron이 동시에 계정 상태를 변경하려 하면 상태 불일치나 데이터 손상이 발생할 수 있다는 걸 깨달았다.
읽기 → -
LLM 없이도 정확한 정부 지원금 자동 판정
정부 지원금 자격 판단을 LLM에서 규칙 기반 파서로 전환했다. 자동 매칭 도구의 신뢰도를 높이기 위한 결정이었다.
읽기 → -
정부지원금 자격 확인 자동화로 신청 경험 개선
정부지원금 자격 조회를 자동으로 매칭해주는 새로운 도구를 추가했다. 사용자가 몇 가지 기본 정보만 입력하면, 시스템이 자동으로 자격 조건을 판단해 관련 지원금을 제시하는 방식이다. 이번 작업을 통해 사용자가 정부지원금에 접근하는 첫 번째 진입장벽을 상당히 낮출 수 있었다고 본다.
읽기 →