스터디/Etc

개발자가 보는 날씨 (날씨 기능 개발하기)

Dalmangyi 2022. 4. 28.

1. 날씨의 종류

흔히 알고 있는 날씨 정보 : 구름 많음, 소나기, 비, 눈

기상청이 수집하는 날씨 정보 : 온도, 습도, 기압, 구름양, 등등..

날씨 정보는 하루를 대표할 수도 있지만, 매 순간순간 마다 변하는게 날씨임. 

 

2. 날씨의 분류

지나간 날에 대한 날씨 (과거 데이터)

아직 일어나지 않은 날씨 (예측 데이터, 예보)

 

 

3. 날씨 수집 위치 (관측소)

한국에는 관측소가 자체적으로 구측되어 있으며, 가끔 등산하다 보면 네모나게 바리게이트 쳐져 있거나

학교의 옥상에 자리잡고 있는 모습이 많음.

 

지점의 상세한 모습은 https://data.kma.go.kr/data/grnd/selectAsosRltmList.do?pgmNo=36 여기서 볼 수 있음.

 

관측소 위치는 자주는 아니지만, 바뀌고 추가되고 없어지기도 함. 

[공공데이터 포탈의 기상청_지상(방재, AWS)기상관측자료 조회서비스 https://www.data.go.kr/data/15057084/openapi.do ]에서 위치가 제공되며, 변화를 엑셀로 파악할 수 있음.  물론 관측소(AWS, 이름이 익숙하지만 개발자가 생각하는 그거 아님)의 위치와 위도,경도, 고도, 관리관서 까지 나오고 있다.   

 

 

기상청04_지상(방재,AWS)기상관측자료_조회서비스_오픈API활용가이드_AWS지점(20201224).xlsx
0.13MB

왠지 나중에 없어질 파일같아서 첨부합니다.

 

관측소의 생기고 없어지고 위치 변화의 누적된 개수와 현재 관측소의 개수를 포함하면 1926개 정도가 된다. 

하지만 현재 실질적으로 운영되고 있는 관측소는 [ 102 ] 개 밖에 안된다. 

 

얘네도 사람적은 파일인지라 중간에 위도,경도가 잘 못 적혀 있으니 잘 처리해야됩니다...

 

 

https://data.kma.go.kr/data/grnd/selectAsosRltmList.do?pgmNo=36&openPopup=Y [지도로 선택 누르면 볼 수 있음.

위치를 찍어보면 이런 모습이다.

심지어 백령도(백령도가 저렇게..위...왼쪾이였어?!)에도 관측소가 있으며, 

이를 통해서 북한의 날씨까지 어림잡아 추측할 수 있다.

 

 

 

 

4. 날씨를 제공받을 수 있는 위치

내가 서 있는 위치(좌표)의 날씨를 과거부터 미래까지 알고 싶지만, 그걸 제공해주는 업체는 없음.

위에서 이야기한데로 관측소 마다 날씨 정보를 수집하기 때문에 , 관측소와 관측소 사이의 데이터는 추측(계산)밖에 안됨.

 

그래서 내가 원하는 위치와 가장 가까운 관측소 위치를 찾아서 그 관측소에서 측정한 날짜의 날씨를 알아내야됨.

 

번외.

정확한 위치가 아니고, 주소로 알고 있는 위치의 날씨를 알고 싶으면....

주소를 좌표로 변환(Naver Geocoding, Kakao Geo.. , Google Geo...)를 총동원해서 위치를 찾아야됨.

내가 알고 있는 주소가 현재 공용으로 쓰고 있는 주소가 아닐 수 있다.  이유는 세종시 처럼 신도시 같은 경우 구글은 과거 충남 연기면 같은 주소로 알고 있고... 평택신도시는 주소가 다 똑같은데 '평택면' 만 없다.. 

 

 

 

5. 날씨 데이터 제공 업체

기상청, 웨더아이, 케이웨더, 오픈웨더 등등 많은 업체가 있지만, 

뭔가 모르게 내가 원하는 정보를 서로 짜고 치기라도 했는지, 어디는 있고, 어디엔 없고 하는 데이터가 많음. 

그리고 날씨 정보가 생각보다 데이터가 많기 때문에 무료로 많이 풀진 않고 있음.

 

별의별 기능을 다 제공하는 카카오나 네이버도 날씨 만큼은 제공하고 있지 않음;

 

생각보다 충격적이였던건, 대부분의 웹에 널려있는 날씨 API 관련된 예제는 예보 밖에 없음..

왜냐하면 과거 데이터는 방대하기 때문에 대부분 돈이 지불되어야 쓸 수 있어서 였음..

 

 

 

6. 날씨 아이콘

여차 저차 개발을 했지만, 날씨 아이콘도 생각보다 골치아프다.

흔히 알고 있는 날씨는 비, 눈 정도 인데, 가끔 우박, 태풍, 안개, 황사, 홍수 와 같은 특이 사항이 겹치고 겹치면 아이콘이 무궁무진하게 필요하다. (블리자드도 대비해야되나?)

거기다가 새심한 감정을 넣으려면 낮과 밤도 나눠놔야 한다... 밤도 심지어 초승달, 보름달 등등 많은 모양까지 추가하면.. 아.. 벌써 부터 귀찮아진다.

 

항상 무료로 아이콘을 제공받던 구글의 머테리얼 아이콘( https://material.io/design/iconography/system-icons.html#design-principles ) 사이트 조차도 날씨가 상세하지 않음... https://fonts.google.com/icons?icon.query=weather

네이버 ( https://blog.naver.com/naver_weather/222057189278 )는 그나마 말랑말랑한 귀여운 아이콘을 많이 쓴다곤 하는데.. 회사 입장에서 무료로 쓸 수 있는게 아니니.. 그림의 떡;

 

 

 

 

7. 개발용 데이터

종관기상관측 https://data.kma.go.kr/data/grnd/selectAsosRltmList.do?pgmNo=36 

방재기상관측 https://data.kma.go.kr/data/grnd/selectAwsRltmList.do?pgmNo=56 

(정부에서 쓰는 단어는 언제 들어도 이상함.. 깊이 들여다 보면 정말 잘 지었다 싶지만.......)

 

 

 

8. 태조실록?

재밌는건 과거의 데이터라길레 얼마나 오래된거지 하고 봤다가

태조실록에 적힌 날씨를 보게 되었음 ㅋㅋㅋㅋㅋㅋㅋㅋ

임금이 왕위에 오르자 억수같이 비가내리니, 백성의 마음이 크게 기뻐하였다!!

 

 

 

 

 

9.급 마무리

하루만에 많은걸 시도해보고 많은 정보를 수집해서 개발해보았습니다. 

개발이 완료된 모습은 비공개여서 공개해드릴 순 없지만... 날씨를 도전하시는 개발자 분들 화이팅 입니다 ㅠㅠ

끝!

댓글