자동화 흐름
날씨 기반 옷차림 추천 자동화
기상청 단기예보 API에서 기온(TMP) 데이터를 가져와 온도 구간별 옷차림을 자동으로 추천하는 Slack 메시지를 매일 아침 보내는 Make.com 시나리오를 구축합니다.
---
사전 준비
1. 공공데이터포털 (data.go.kr) API 키 발급 2. 기상청 단기예보 조회서비스 활용 신청 3. Slack 워크스페이스 및 Incoming Webhook 또는 Bot Token 준비 4. Make.com 계정 생성
---
Step 1: 기상청 API에서 기온 데이터 조회
단기예보 API를 호출하여 TMP(기온) 카테고리 데이터를 가져옵니다.
GET https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst
?serviceKey={{YOUR_KEY}}
&numOfRows=300
&pageNo=1
&dataType=JSON
&base_date={{formatDate(now; "YYYYMMDD")}}
&base_time=0500
&nx=60
&ny=127
응답에서 category가 TMP인 항목이 시간대별 기온(섭씨) 예보입니다.
{
"category": "TMP",
"fcstDate": "20260416",
"fcstTime": "0900",
"fcstValue": "18"
}
Tip: numOfRows를 300으로 설정하면 하루치 전체 예보 항목을 한 번에 받을 수 있습니다. TMP 외에도 TMN(최저기온), TMX(최고기온)도 함께 조회됩니다.
---
Step 2: 주요 카테고리 코드 정리
| 카테고리 | 설명 | 단위 | |----------|------|------| | TMP | 1시간 기온 | °C | | TMN | 일 최저기온 | °C | | TMX | 일 최고기온 | °C | | SKY | 하늘상태 | 코드 (1맑음, 3구름많음, 4흐림) | | PTY | 강수형태 | 코드 (0없음, 1비, 2비/눈, 3눈, 4소나기) | | POP | 강수확률 | % | | REH | 습도 | % | | WSD | 풍속 | m/s |
---
Step 3: 온도별 옷차림 추천 테이블 구성
Make.com의 Router 또는 Switch 모듈을 사용하여 온도 구간별로 다른 메시지를 생성합니다.
| 온도 범위 | 추천 옷차림 | 아이콘 | |-----------|------------|--------| | 28°C 이상 | 민소매, 반팔, 반바지, 린넨 소재 | ☀️ | | 23°C ~ 27°C | 반팔, 얇은 셔츠, 면바지 | 🌤 | | 20°C ~ 22°C | 긴팔 티, 얇은 가디건, 청바지 | 🌥 | | 17°C ~ 19°C | 니트, 맨투맨, 얇은 재킷 | 🍃 | | 12°C ~ 16°C | 자켓, 가디건, 야상, 스타킹 | 🧥 | | 9°C ~ 11°C | 트렌치코트, 점퍼, 기모 옷 | 🌬 | | 5°C ~ 8°C | 울코트, 히트텍, 가죽재킷 | 🥶 | | 4°C 이하 | 패딩, 두꺼운 코트, 목도리, 장갑 | ❄️ |
---
Step 4: Make.com 시나리오 흐름
1. Schedule — 매일 오전 6:30 실행 2. HTTP Request — 기상청 API 호출 3. JSON Parse — 응답 파싱 4. Array Filter — TMP, TMN, TMX 카테고리만 추출 5. Math Aggregator — 최저/최고/평균 기온 계산 6. Router — 온도 구간별 분기 7. Slack > Send Message — 추천 메시지 발송
---
Step 5: Slack 메시지 포맷
Slack Block Kit 형식으로 깔끔하게 구성합니다.
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "오늘의 옷차림 추천"
}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "최저기온: {{TMN}}°C"},
{"type": "mrkdwn", "text": "최고기온: {{TMX}}°C"},
{"type": "mrkdwn", "text": "현재기온: {{TMP}}°C"},
{"type": "mrkdwn", "text": "하늘: {{SKY_TEXT}}"}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "{{CLOTHING_RECOMMENDATION}}"
}
}
]
}
Tip: Slack 채널을 #daily-weather처럼 전용 채널로 만들면 팀 전체가 활용할 수 있습니다.
---
Step 6: 테스트 및 미세 조정
시나리오를 수동 실행(Run once)하여 결과를 확인합니다.
예상 결과: 매일 아침 Slack 채널에 최저/최고 기온과 함께 적절한 옷차림 추천 메시지가 도착합니다.
---
트러블슈팅
| 증상 | 원인 | 해결 방법 | |------|------|-----------| | TMP 값이 문자열로 반환됨 | API 기본 반환 타입 | parseFloat() 또는 Make.com의 toNumber() 사용 | | TMN/TMX가 조회 안 됨 | base_time 이슈 | TMN은 0600, TMX는 1500 발표 — base_time=0200 권장 | | Slack 메시지 미발송 | Webhook URL 오류 | Slack 앱 설정에서 Webhook URL 재확인 | | Router 분기 오작동 | 조건 순서 문제 | 온도 범위를 높은 쪽부터 체크하도록 순서 조정 |
Tip: TMN(최저기온)과 TMX(최고기온)는 하루에 한 번만 발표되므로, base_time=0200으로 설정하면 두 값 모두 확보할 수 있습니다.
Make 블루프린트 다운로드
JSON 파일을 Make.com에 임포트하면 시나리오가 자동 생성됩니다
댓글 · 질문 (0)
로그인 후 댓글을 작성할 수 있습니다.