BTS 리드타임 경과 티켓 알림 자동화
리드타임(SLA)이 지난 미해결 BTS 티켓을 매일 담당자별로 묶어 Slack으로 알리는 Airflow 파이프라인
- 약 1만 건미해결 티켓 매일 점검
- 21% 감소영업일 기준 적용 후 경과 건수
- 21개유닛 테스트, 뮤테이션 검사
- 원본 대시보드 SQL의 티켓 테이블 조회 권한이 없어 티켓은 JIRA REST(JQL)로 읽고 SLA 기준·스토어 정보는 Trino로 조인하도록 재구성
- 경과일수를 캘린더가 아닌 영업일 기준으로 계산하고 주말·공휴일에는 발송을 건너뛰어 중복 알림 방지
- JIRA 이메일과 Slack 유저네임이 같다는 규칙을 활용해 사용자 조회 API 호출 없이 담당자 멘션 연결
- 담당자별 경과 건수 편차(중앙값 4건, 최대 597건)로 Slack 글자 수 한도를 넘던 문제를 부모 메시지와 스레드 답글 구조로 해결
- core·task·DAG 계층을 분리하고 배포 코드를 그대로 호출하는 유닛 테스트 21개와 뮤테이션 검사로 검증
- 첫 운영 실행의 발송 실패 원인(PR 검토 기간에 이뤄진 팀 Slack 봇 교체)을 분석해 배포 전 다른 DAG의 설정 변화 점검을 체크리스트에 추가