확인하러 들어가야만 알 수 있는 것들이 있다. 판매자 센터의 새 주문, 답변을 기다리는 문의, 아침에 챙겨 볼 뉴스, 자동화 스크립트가 방금 한 일. 이런 것을 대신 지켜보다가 채팅방에 한 줄 올려 주는 봇을 몇 개 만들어 쓰고 있다. 만드는 방법을 몇 편으로 나눠 적는다. 각 편은 알림봇-따라하기 라벨에 모여 있다.
알림 봇의 공통 구조
무엇을 알리든 뼈대는 같다.
주기 실행 ──▶ 외부 API 조회 ──▶ "새 것"만 추리기 ──▶ 채팅방에 게시 ──▶ (선택) 메신저로 사본
▲
상태 파일(어디까지 봤는지)
- 주기 실행: 20분마다, 또는 매일 정해진 시각에.
- 새 것만 추리기: 봇의 품질은 여기서 갈린다. 같은 알림이 두 번 오면 금방 무시하게 되고, 한 번 빠뜨리면 믿지 못하게 된다.
- 게시: 직접 운영하는 팀 채팅 서버에 봇 계정으로 올린다. 알림 종류마다 채널을 나누면 나중에 찾아보기 쉽다.
- 사본: 채팅 앱을 자주 열지 않는 사람을 위해, 중요한 알림 몇 가지는 평소 쓰는 메신저로도 보낸다.
편별 내용
- 채팅방에 봇으로 글 올리기 — 봇 토큰과 REST API, 채널 찾기, 표가 깨지는 이유, 매일 정시에 실행하는 루프
- 새 것만 알리기 — 상태 파일과 중복 키, 조회 구간 다루기, 그리고 오픈마켓 판매자 API 세 곳에서 겪은 것들
- 메신저로 사본 보내기 — 카카오톡 "나에게 보내기" 중계 서버, 토큰 갱신, 글자 수 제한과 묶음 전송
만들면서 정한 원칙
- 알림은 한 줄로 끝나야 한다. 무슨 일인지, 어디서 확인하는지(링크). 요약이나 통계는 알림이 아니라 대시보드에 둔다.
- 알림 경로가 죽어도 본업은 계속된다. 채팅 서버가 내려가 있어도 주문 조회 상태는 정상적으로 다음으로 넘어가야 하고, 사본 전송이 실패해도 원래 알림에는 영향이 없어야 한다.
- 실패는 조용히 넘기되 흔적은 남긴다. 알림 봇이 스스로 알림 폭탄을 만들면 안 된다. 오류는 로그와 상태 확인 주소에 남기고, 다음 주기에 다시 시도한다.
- 시험 전송 옵션을 둔다. 실제로 보내지 않고 "보냈을 내용"만 출력하는
--dry-run이 있으면 고칠 때마다 채팅방을 어지럽히지 않는다.
봇을 돌릴 서버와 배포 방법은 홈서버-따라하기 시리즈에, 알림을 모아 한 화면에서 보는 방법은 대시보드-따라하기 시리즈에 있다.
댓글 없음:
댓글 쓰기