잔디 날씨 알림 봇 개발기
두줄요약
잔디 Outgoing Webhook과 OpenWeather API로 사내 날씨 알림 봇을 구현했습니다. 다중 API 호출과 지명·미세먼지 정확도 문제를 캐싱과 API 조합으로 개선할 계획입니다.
문제 상황
- 사내 잔디 메신저에 기본 날씨 정보를 제공하는 봇 부재
- 기상청 API 조합 시 5회 이상의 호출과 X·Y 좌표 매핑으로 인한 응답 지연 및 데이터베이스 구축 부담
해결 방법
- OpenWeather One Call API 중심으로 현재·오늘·7일 날씨와 대기질 정보 조회
- 도시명 날씨 검색 결과의 위도·경도를 One Call 및 Air Pollution API 요청에 활용
- 잔디 Outgoing Webhook의 키워드·데이터 필드 파싱과 응답 포맷 연동
구조와 흐름
- TypeScript 템플릿 기반 Node.js 프로젝트와 got HTTP 클라이언트 사용
- 잔디 메시지 MongoDB 저장, 명령어별 Map 기반 모듈 실행 구조
- 봇 구동부와 날씨 모듈 분리로 추가 기능 확장성 확보
성능/운영 포인트
- 현재 날씨 조회의 3회 API 호출로 약 1초 응답 시간 발생
- Redis 10분 캐싱 및 MongoDB 단위 캐싱 검토
- OpenWeather 지명 검색·미세먼지 정확도 보완을 위한 Google·기상청 API 조합 계획
