날씨 정보는 다양한 종류에 활용도가 높은 컨텐츠 중에 하나입니다.
본인이 제공하는 주요 컨텐츠에 맞게 적절하게 사용한다면 좀 더 풍부한 정보를 가진 사이트를 만들 수 있겠습니다.
여러 종류의 날씨 API 중에서 개발용으로 무료로 사용할 수 있는 API로 OpenWeather 를 사용하는 방법에 대해 간단하게 공유하고자 합니다.
OpenWeather 특성은 전세계 날씨 데이터를 가져올 수 있고, 현재 날씨 뿐만아니라 주간날씨를 무료로 이용할 수 있습니다.
1. OpenWeather 회원가입 하기
Сurrent weather and forecast - OpenWeatherMap
Access current weather data for any location on Earth including over 200,000 cities! The data is frequently updated based on the global and local weather models, satellites, radars and a vast network of weather stations. how to obtain APIs (subscriptions w
openweathermap.org

- 회원가입은 이메일 정보만으로 가입
 - API Key 확인
 

- 무료로 이용 가능한 One Call 2.5 버젼은 24년 6월로 종료되어 현재 날씨만 조회 가능!!
 

- One Call 3.0 버젼은 다음과 같은 가격 정책을 제공하며 별도 가입신청 필요
- 무료로 이용 가능한 기준은 월 100만건 호출(분당 60건)
 
 

2. API 사용 방법
아래와 같이 API 항목중 무료로 사용 가능한 API 는 노란색 박스로 표기

- 현재 날씨 API 사용 방법
 
📌 GPS 위치 기준으로 날씨 조회
https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}
옵션 파라미터는 다음과 같습니다.
1) mode : 사용하지 않으면 default 응답 포맷이 json 이고, mode를 xml, html 로 지정 가능
2) units : default는 standard (Kelvin 온도)이고, units를 metric(℃ 온도), imperial(℉ 온도) 로 지정 가능
3) lang : 응답데이터 언어를 지정, default는 영어 이고, 한국어는 kr 를 사용
한국어, ℃ 온도 로 응답 받기 위해서는 아래와 같이 API를 구성하면 됩니다.
https://api.openweathermap.org/data/2.5/weather?lat=44.34&lon=10.99&lang=kr&units=metric&appid={API key}
- 응답 데이터 포맷
 
JSON Format                          
{
  "coord": {
    "lon": 10.99,
    "lat": 44.34
  },
  "weather": [
    {
      "id": 501,
      "main": "Rain",
      "description": "moderate rain",
      "icon": "10d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 298.48,
    "feels_like": 298.74,
    "temp_min": 297.56,
    "temp_max": 300.05,
    "pressure": 1015,
    "humidity": 64,
    "sea_level": 1015,
    "grnd_level": 933
  },
  "visibility": 10000,
  "wind": {
    "speed": 0.62,
    "deg": 349,
    "gust": 1.18
  },
  "rain": {
    "1h": 3.16
  },
  "clouds": {
    "all": 100
  },
  "dt": 1661870592,
  "sys": {
    "type": 2,
    "id": 2075663,
    "country": "IT",
    "sunrise": 1661834187,
    "sunset": 1661882248
  },
  "timezone": 7200,
  "id": 3163858,
  "name": "Zocca",
  "cod": 200
}
상기 응답데이터중 주요 항목에 대한 설명
1) coord : 경위도 좌표
2) weather : 날씨 (비, 구름 등) 상태 와 날씨 아이콘 id
3) main : 현재온도, 체감온도, 기압, 습도 정보
4) wind : 풍속, 풍향
5) rain : 최근 1시간 강수량
📌 국가와 도시이름으로 날씨 조회
https://api.openweathermap.org/data/2.5/weather?q={city name},{country code}&appid={API key}
예시) 영국, 런던 날씨 조회
https://api.openweathermap.org/data/2.5/weather?q=London,uk&appid={API key}
📌 날씨 icon 사용하기
응답받은 weather 데이터에서 icon code로 다음과 같이 icon 이미지를 가져올 수 있습니다.
URL. : https://openweathermap.org/img/wn/10d@2x.png

지금까지 기본적인 이용방법에 대해 설명하였고, 다음 포스트에서 실제 적용 사례를 보여드리겠습니다.
2023.12.14 - [개발활용툴] - 날씨 API - OpenWeather 사용하기(2)
날씨 API - OpenWeather 사용하기(2)
2023.12.13 - [개발활용툴] - 날씨 API - OpenWeather 사용하기(1) 날씨 API - OpenWeather 사용하기(1) 날씨 정보는 다양한 종류에 활용도가 높은 컨텐츠 중에 하나입니다. 본인이 제공하는 주요 컨텐츠에 맞게
peter-codinglife.tistory.com
'개발활용툴' 카테고리의 다른 글
| 무료 아이콘(icon) 활용하기 (1) | 2023.12.29 | 
|---|---|
| 날씨 API - OpenWeather 사용하기(2) (0) | 2023.12.14 | 
| Mapbox사용법(5) - Mouse Event (0) | 2023.12.12 | 
| Mapbox사용법(4) - geocoding (3) | 2023.12.11 | 
| Mapbox 사용법(3) Marker 표출하기 (0) | 2023.11.13 |