사람들은 매일 아침 날씨를 확인하면서 우산을 챙길지 말지를 고민합니다. 하지만 바쁜 일상 속에서 날씨를 일일이 확인하는 것이 귀찮거나 깜빡 잊을 때가 많습니다. 특히 소나기처럼 예고 없는 비가 내리는 날은 당황스럽기 마련입니다.
이런 불편함을 줄이기 위해 필자는 공공데이터 포털에서 제공하는 기상청 단기예보 API를 활용하여, 하루의 날씨 정보를 자동으로 수집하고, 비 소식이 있을 경우 사용자에게 우산 챙기라는 알림을 자동 전송하는 시스템을 직접 구축해 보았습니다. 이 글은 단순히 날씨 확인을 자동화하는 것을 넘어, 공공데이터의 실제 활용법을 실용적으로 구현한 사례로 구성되어 있으며, 일상생활에서 충분히 유용하게 사용할 수 있는 정보입니다.
공공데이터포털(data.go.kr)에서는 기상청에서 제공하는 ‘단기예보 조회 서비스 API’를 무료로 사용할 수 있습니다. 이 API는 3시간 간격의 날씨 정보를 제공하며, 강수확률, 강수량, 기온, 하늘 상태 등 다양한 요소를 포함하고 있습니다.
목표는 간단합니다.
import requests
import datetime
import xml.etree.ElementTree as ET
# 1. 오늘 날짜와 시간 설정
now = datetime.datetime.now()
base_date = now.strftime('%Y%m%d')
base_time = "0500" # 오전 5시 기준 (정각 예보 시간)
# 2. 기상청 API 요청 주소 설정
SERVICE_KEY = "발급받은_인증키"
nx, ny = "60", "127" # 서울 중구 예시 좌표
url = f"http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst"
params = {
'serviceKey': SERVICE_KEY,
'numOfRows': '1000',
'pageNo': '1',
'dataType': 'XML',
'base_date': base_date,
'base_time': base_time,
'nx': nx,
'ny': ny
}
response = requests.get(url, params=params)
tree = ET.fromstring(response.content)
# 3. 강수확률 추출
rain_chance = []
for item in tree.iter('item'):
category = item.find('category').text
if category == 'POP':
fcstValue = item.find('fcstValue').text
rain_chance.append(int(fcstValue))
# 4. 우산 알림 조건 확인
if any(chance >= 50 for chance in rain_chance):
print("오늘은 비가 올 확률이 높습니다. 우산을 챙기세요!")
else:
print("오늘은 우산이 필요하지 않을 것 같아요.")
이 시스템을 매일 오전 7시에 실행되도록 예약해두면, 자동으로 날씨를 확인하고 결과에 따라 텔레그램 또는 스마트폰 알림을 받을 수 있습니다. 필자의 경우 Raspberry Pi에 등록하여 매일 아침 알림을 받고 있으며, 잊고 지나친 날에도 우산을 챙길 수 있어 매우 유용하게 활용하고 있습니다.
공공데이터는 단순한 정보 제공을 넘어서, 우리의 일상 속 불편함을 해결하는 도구로 활용될 수 있습니다. 특히 기상청 API를 활용한 날씨 자동화 시스템은 비교적 쉬운 구현에도 불구하고, 활용했을때, 우리 생활에 매우 유용하게 사용될 수 있습니다.
공공 체육시설 예약 데이터를 활용한 헬스장 자동 추천 시스템 만들기 (0) | 2025.07.02 |
---|---|
오늘 문 연 병원, 자동으로 찾는 시스템 만들기 (공공데이터 기반) (0) | 2025.07.02 |
출근길 대중교통 혼잡도, 예측하는 자동 시스템 만들기 (버스+지하철 연동) (0) | 2025.07.02 |
실시간 버스 위치 데이터로 내 출근 시간을 자동으로 조절하는 방법 (0) | 2025.07.02 |
미세먼지 자동 확인 시스템: 내 캘린더에 표시되는 똑똑한 생활 정보 (0) | 2025.07.02 |