파트너 정산 알림에 텔레그램 보조 채널 추가해 도달율 95%로 개선
목차
알림 채널 이중화 작업 회고
파트너 정산 알림에서 문자만으로는 도달율이 낮아서 텔레그램을 보조 채널로 붙였음. 기본은 문자, 옵션 켠 파트너만 텔레그램까지 추가로 쏘는 구조로 잡음.
왜 이중화가 필요했나
- 문자 메시지는 스팸 필터에 걸리거나 사용자가 못 보는 경우가 잦았음
- 일부 파트너가 "정산 알림 놓쳤다"고 반복적으로 컴플레인
- 텔레그램은 푸시가 즉각적이고 봇 발송은 비용이 안 들어서 부담 없음
전원 강제하긴 부담스러워서 opt-in 방식으로 풀었음. 받고 싶은 사람만 봇 ID 등록.
설계 포인트
- 기본 발송(문자)은 무조건 수행 → 누락 방지
- 텔레그램 ID가 등록된 파트너만 추가 발송
- 텔레그램 실패해도 문자 결과에는 영향 없게 분리
sendSms(파트너, 메시지) // 항상 실행
if (텔레그램ID 있음) {
try { sendTelegram(...) }
catch (e) { 로그만 남기고 무시 }
}
삽질했던 부분
- 봇 토큰을 코드에 박았다가 셀프 리뷰에서 잡힘. 설정 파일로 분리함
- 메시지 본문에
_,*,.같은 특수문자가 있으면 파싱 에러. escape 함수 따로 만들었음 - 굳이 마크다운 모드 안 쓰고 일반 텍스트로 보내는 게 유지보수가 편했음. 꾸미려다 에러만 늘어남
- 정산용 SQL에서 알림 대상 추출할 때 텔레그램 ID
NULL조건 누락해서 빈 문자열로 호출되던 버그도 잡음
결과
| 항목 | 이전 | 이후 |
|---|---|---|
| 알림 도달 확인율 | 약 60% | 약 95% |
| 정산 누락 문의 | 주 3~5건 | 주 0~1건 |
| 추가 운영 비용 | - | 0원 (봇 무료) |
배운 점
- 알림은 "기본 채널 + 보조 채널" 패턴이 안전함. 한 채널 의존하면 사각지대 무조건 생김
- 보조 채널 실패가 본 채널 발송을 막으면 안 됨. 장애 격리 필수
- opt-in 이어야 사용자 거부감이 적음. 강제하면 컴플레인 방향만 바뀜
- 외부 API는 무조건 try/catch 로 감싸고, 실패 시 로그만 남기는 fire-and-forget 패턴이 정신건강에 좋음
다음
다음엔 알림톡까지 붙여서 3중 채널로 갈지 검토 중. 단 알림톡은 템플릿 심사·건당 비용이 있어서 ROI 먼저 따져봐야 함. 그리고 발송 이력 테이블 만들어서 어느 채널로 언제 갔는지 추적도 붙일 예정.
다음
댓글 0
첫 댓글 달아줘.