기상청 API가 얼마나 ㅈ같냐면

기상청 API의 최대 문제점은 수시로 서버가 맛이 가거나 응답이 느리다는 것이지만 (이 글을 쓰기 며칠 전에도 3일간 예보, 실황 API가 응답을 안했다. 주말 내내 안되다가 월요일 출근시간 되니까 고치더라.) 일단 제외하고, API의 구조 자체가 얼마나 개발하기 불편하고 지들 편하게만 만들어졌는지 적어 보겠다.

기상청 API 허브 (https://apihub.kma.go.kr/) 2024년 08월 예특보API 기준.

API가 쓸데없이 많다

내가 3일 후 부터 10일이내 예보 데이터가 필요하면? 중기예보 API를 써야 한다. 오늘부터 3일 이내 예보 데이터가 필요하면? 동네 단기예보 API를 써야 한다. 오늘 특정시간대 예보가 필요하면 초단기예보 API를 써야한다. 지금 현황을 알고 싶으면 초단기실황 API. 거기에 단기개황, 단기육상예보, 단기혜상예보, 기상개황, 예보버전조회, 동네예보분포 등등 단기 예보만 이 정도이고, 중기예보와 특보까지 치면 목적과 지역에 맞춰 써야 하는 예보가 20개 가까이 된다. (중기예보도 강우예보를 확인하는 육상/해상 예보와 기온예보로 분리되어 있다)

그냥 내 위치랑 뭐 필요한지 요청하면 해당하는 자료 주면 안되냐?

저 많은 API가 쓰는 좌표계가 달라

일단 API가 많아도, 여러번 필요한 것들 여러번 호출하면 되잖아? 좀 느리겠지만. 글쎄.

일단 동네예보는 “동네예보 격자 번호”라는 것을 사용한다. 이건 다행히 위경도를 변환하는 API를 제공하고, 인터넷 검색하면 변환하는 함수도 있다. 육상예보와 중기예보는 예보구역코드라는걸 쓴다. 그런데 API별로 예보구역코드가 다르다. 육상예보에서 서울은 11B00000이지만, 기온예보에서는 서울이 11B10101인 식이다. 동네예보 통보문는 발표관서코드를 알아야 한다. 기상특보는 특보구역코드를 계산해서 써야한다. 다른 자료들도 대부분 위치가 아니라 그 자료를 만든 측정소 코드로 요청하는 식이다.

일부 구역코드는 위경도에서 변환이 안되고 서울이면 서울식으로 텍스트 매칭해서 써야 한다.

그냥 위경도로 요청하면 니들이 변환해서 자료 주면 안되니?

자료 만든 시간도 알아야 해

그걸로 끝이 아니다. 일부 자료는 매시간 자료를 만드는게 아니라서 조회할 때 몇시에 만든 자료를 줄지도 설정해야 한다. 예를 들어 가장 자주 쓰게되는 동네 단기 예보는 02시, 05시, 08시, 11시, 14시, 17시, 20시, 23시 이렇게 8번 갱신되는데, 예를 들어 19시에는 17시것을 조회해야 한다. 값을 안넣거나 다른것을 넣으면 에러난다. 물론 이런건 매뉴얼이 있지만.

시간 안넣으면 최신값을 주는 API도 있는데 아닌 것도 많다.

그 외에도 많아

API마다 엑셀과 워드로 매뉴얼이 있기는 한데, 매뉴얼과 다른 사양을 가진 경우도 있고 (갱신 안한 듯), 비슷비슷한 API의 목적이 매뉴얼에도 적혀 있지 않아서 하나하나 API 사용신청하고 써봐야 알 수가 있다.

매뉴얼에 기상 용어도 정리가 안되어 있다. 특보API에 명령 변경이라는 값이 나오는데 이게 특보 등급이나 시간이 변경된 것이라는 걸 한참 돌려봐야 알 수 있다. 기상청 API를 쓰면 용어 정도는 아는 기상전문가라고 생각해서인가.

API의 응답도 딱히 자료가 쓰기 좋기 정리되어 있지 않다. 기온, 풍속, 습도 등등 값이 하나하나 나열만 되어 있다. 하루치 데이터만 해도 24시간 x 측정값들 수로 수백줄이 된다. 이틀 후 13시의 습도를 찾으려면 원하는 값이 나올 때까지 루프 돌리는 수밖에 없다.

날씨 앱 만들려면

날씨 앱 하나 만든다고 가정하자.

일단 현재 날씨를 확인해야겠지? 위경도를 동네예보 격자 번호로 변환한다음 초단기실황 API를 사용한다.

폭염특보가 있는지 표시해야겠지? AWS가 속한 특보구역 코드API를 사용해 현재 위경도가 속한 특보구역 코드를 알아낸 후, 특보현황 조회 API를 사용해야 한다.

날씨앱에 있는 오늘 시간별 날씨를 표시해야 한다. 현재 날씨에서 사용한 동네예보 격자 번호로 초단기예보API나 단기예보API를 사용한다.

내일부터 일주일이나 10일 이내의 날씨도 나와야 한다. 요즘 날씨앱에는 기본이니까. 중기예보 API를 사용해야 하는데, 중기예보 예보구역을 확인한 후(이거 위경도에서 바로 변환이 안된다. 다른건 행정구역에서 대충 변환하면 되는데 강원영서와 영동 구별이 어렵다), 중기예보 육상예보 API에서 강우를 확인하고, 중기기온 예보구역을 확인하고(앞에서 말했듯 육상예보용과 코드가 다르다) 중기예보 기온예보API에서 온도를 확인해야 한다.

날씨앱 첫화면을 띄우기 위해 쓸 기상청 API가 이렇게 6번이 넘는다. 여기에 지오코딩이나 미세먼지 API같은 기상청 외의 API까지 쓰려면 최적화가 얼마나 힘들려나.

비교를 해보자면 Open-Meteo 같은 해외 서비스 API는 저걸 1번의 쿼리로 모든 정보를 가져온다. 위치 확인에 필요한 값도 위경도 뿐이다.

아마도

아마도 API를 개발한 개발자도, 워낙 데이터 소스가 ㅈ같고, 그거 편하게 만든다고 보상이 있는 것도 아니니 그냥 주는 데이터 형식 그대로 조회만 하게 API를 만들었을 것이다. 하지만 정말…그게 최선일까?

저런 API가지고도 기상청 예보 조회를 잘하는 날씨 앱들은 개발자들이 존경스럽다.

티몬 이놈들아, 9,205원 환불 해줘

7월 13일에 방울토마토가 싸길래 주문했는데 배송을 안함. 검색해보니 티몬이 요즘 판매자에게 정산을 안하고 있더라는 뉴스를 발견.

다행히 오늘 7월 24일에 주문 취소하겠다는 문자가 옴

그런데 잠시 후

결제 취소가 안되니 환불계좌 등록을 해달라는 문자가 옴….어라?

PG사가 티몬, 위메프와 거래를 끊어서 취소가 안되는거라고.
https://www.cstimes.com/news/articleView.html?idxno=603101

하지만 해당 메뉴에서 환불계좌를 등록하려고 하면 DB오류가 난다.

이 놈들이!!!

해당 상품 문의란도 난리난 상황 ㅋ

덧. 7월 29일에 토스에서 대신 환불해줬다.

발행일
카테고리 일상

애콜라이트 (The Acolyte, 2024)

이정재가 나온다길래 본 디즈니+ 스타워즈 드라마.

(스포일러 주의)

결론부터 말하자면, 배우도 좋고, 액션도 좋고, 특수효과도 좋은데, 이야기와 연출이 뭔가….쌍팔년도 단막극 드라마처럼 유치하다. 뒷이야기를 밝히는 과정도 그렇고, 인물들의 심리묘사도 그냥 배우들의 연기력에만 의존하는 것 같고, 이래저래 진행이 억지스럽고 공감이 안된다.

가장 중요한 캐릭터인 메이와 오샤 쌍둥이, 그 두명의 운명을 건드린 이정재가 연기한 솔, 솔과 친구이자 상사 역이지만 뭔가 정치적인 분위기 풍기는 버네스트라 로, 제다이에게 복수하려는 카이미르, 인물들은 딱 좋게 배치를 잘 했는데, 저 인물들이 전부 똑같이 착한 척하는 이기적이고 충동적인 인물들이다. 버네스트라 로와 카이미르만 좀 전략적이었을 뿐이다. 게다가 그 인물들의 관계를 그냥 대사로 퉁치고 지나가는게 너무 많다.

쌍둥이라는 스타워즈 전통이자 중요한 소재도 그냥…서로 좀 통했다. 원래 하나였다, 좀더 착한 줄 알았던 애가 흑화했다. 수준이다. 굳이 쌍둥이로 했을 필요도 없는 그런 정도의 활용이었다.

결국 오샤의 흑화도 공감이 안되고, 오샤의 흑화를 위해 많은 캐릭터를 낭비한 느낌마저 든다. 마지막 버네스트라 로의 일처리도 왜 그렇게 했는지 설명이 되지 않는다.

그냥 시즌2 예고편인가? 글쎄…시즌2라고 나아질까?

배우와 광선검 액션만 아니었으면 별 2개도 아까운 작품. 하지만 별 3개 준다.

덧. 오샤가 흑화할 때 쥐고 있던 파란색 광선검이 바로 빨강이 되는거였다면….아나킨 스카이워커는 오비완이랑 싸울때 파란색 유지했던게 뭐가 되냐?

오비완 케노비 (Obi-Wan Kenobi, 2022)

마눌님이 매주 한편씩 나오는 애콜라이트를 기다리기 지쳐서 비슷한거 보자고 해서 본 드라마. 스타워즈 에피소드 3에서 10년 후, 4편과 로그원 전 루크와 레아가 아직 어린이인 시점을 다루고 있다.

전체적으로 재미있게 잘 보았다. 오비완이 죄책감과 세월로 약해졌다가 다시 극복하고 강해지는 것도 좋았고, 왜 에피소드4에서 다스베이더가 아나킨을 죽였다고 표현했는지, 레아가 왜 오비완을 믿고 의지하는지 여러가지를 알게 해주는 면이 많아서 좋았다. 인퀴지터들을 제외하고는 뜬금없는 외전의 인물들이 등장하지 않아서 더 좋았다.

아쉬운 점은 새로운 점은 딱히 없다는 것. 이미 정해진 영화들 사이의 이야기라서 그렇겠지만 한계가 많은 작품이었다. 다스베이더와 오비완의 결투도 사실상 억지로 집어넣은 것이기도 하고. 세번째 자매가 스토리를 만든 것인데도 그렇게 비중이 많지도 않고, 나머지 인퀴지터는 심지어 싸우지도 않는 병풍이라는 것도 아쉽다. 이왕 집어 넣은 김에 제대로 변주를 줬어도 좋았을 것 같은데, 이래서는 그냥 빼고 스톰투르퍼들에게 쫒긴다고 다를게 무엇인가.

가장 인상적인 점은 광선검인데, 이제 에피소드 7부터 보여준 LED광선검을 제대로 사용해서 제대로 빛의 향연을 보여준다는 것이다. 배경을 만달로리안 처럼 디스플레이를 두른 스튜디오를 사용해서 정말 외계행성 같은 분위기도 잘 만들었다.

내 평점은 별 4개. 사족으로 만든 드라마치고는 좋았다.

더 퍼스트 슬램덩크 (THE FIRST SLAM DUNK, 2022)

어렸을 때 봤던 슬램덩크의 북산-산왕전을 3D 애니메이션으로 만든 작품.

우선 3D로 만들었지만 만화책의 캐릭터가 그대로 튀어나온 듯한 재현도를 가지고 있다. 그리고 카툰 렌더링된 3D인 덕분에 기존 애니메이션에서는 약간 아쉬웠던 농구의 움직임이 아주 잘 살아 있고, 알아보기가 좋았다. 전체적인 농구 내용도 원작을 거의 그대로 따라가고 있다.

다만 아쉬움도 있다. 강백호가 아닌 송태섭을 중심으로 이야기를 펼치는 것도 좋고, 원작에는 없던 송태섭의 가족 이야기를 넣는 것도 좋지만, 너무 그게 잦다. 무슨 공격-방어 한번 하면 그때마다 인물들의 과거를 보여주는데 흐름이 너무 끊긴다. 그걸 절반정도만 줄여주거나, 후반에는 게임에만 집중했으면 지루하진 않았을 듯.

그리고 중심이 송태섭으로 넘어간 부작용으로, 작품의 유머가 90%가 실종되어 버렸다.

하지만 내 평점은 추억보정으로 별 4개.

인사이드 아웃 2 (Inside Out 2, 2024)

침체된 디즈니-픽사의 반짝 흥행작? 9년만에 나온 인사이드 아웃의 후속작을 가족들과 함께 봤다. 사실은 16일에 봤지만 이제서야 씀.

주요 내용은 라일리가 2살 더 먹고 사춘기(중2병?)이 제대로 와서, 감정들의 본부에 새로운 감정들 – 불안, 부럽, 따분, 당황, 추억(몇초만 나옴)등이 생기고, 불안이가 쿠테타를 일으켜 기존 감정들을 추방해 버린 이야기.

1편처럼 라일리가 바뀐 환경에 방황하고, 본부에 되돌아가기 위해 감정들이 고생하는 것이 주요 내용이라 반복되는 면이 없지 않아 있다. 그리고 블루피나 파우치, 랜스 같은 웃기는 캐릭터들이 많이 나오지만, 1편의 빙봉만한 감흥을 주지는 못한다.

하지만 이불킥하게 하는 흑역사들을 잊고, 좋은 기억들만으로는 올바른 성장을 할 수 없다는 것, 불안한 마음만으로는 여러 무리를 하게 된다는 것 등 좋은 주제로 이야기를 풀어나가는 점이 여전히 인사이드 아웃 답다는 생각을 들게 한다.

가장 훌륭한 묘사는 역시 불안이가 상상력들을 동원하자 망하는 상상을 계속 하게 되서 라일리가 잠을 못자는 부분. 누구나 겪어봤을 것을 인사이드 아웃 답게 풀어가는 점이 좋았다. 1편처럼 여기저기 이런 디테일들이 넘친다.

내 평점은 별4.5개.

짜파게티 블랙

짜파게티 블랙 먹어 봤다. 사실은 일주일 전에 사놨는데 먹을 기회가 없어서 이제야 먹어 봄.

결론은 짜파게티의 고급버전이라기 보단, 그냥 건면 버전.

소스는 거의 같은듯 한데 춘장향이 미세하게 강하고 조금 묽은 느낌이 남. 아마 면이 달라서 국물로 녹아 들어간 전분이나 기름이 달라져서 그럴수도.

면은 좀더 쫄깃 하지만 고소한 것도 없고 단 느낌이 덜함. 그래서 전체적으로 ‘건강한 맛’ 느낌이며, 다소 불량식품 같았던 짜파게티의 특성이 사라짐. 그래서 짜파게티의 그런 면을 좋아했던 사람은 실망할 것이고, 반대인 사람은 더 좋아할 듯 하다.

건면이라고 면이 얇다는 느낌은 크게 없는건 다행이지만, 양이 줄어서 아쉽다. (오히려 부담없이 2개 끓여먹을 수 있을지도?ㅋㅋㅋ) 건면이라 그런지 봉지내에 상당량의 면이 부서져 있는건 아쉽다.

콩고기가 기존 짜파게티보다 몇배 큰게 많이 들어 있긴 한데, 다른 건더기는 거의 없다시피해서 딱히 고급스러운 느낌은 없다.

가격이 기존 짜파게티보다 조금 비싸서, 딱히 더 사먹을 것 같지는 않다.

위시(Wish, 2024)

그냥 평범한 회사의 평범한 극장판 애니메이션이었다면 뭐 볼만했네 하겠는데, 이건 디즈니의 100주년 애니메이션이잖아? 정말 좀 심각하다.

작품 속 악역인 매그니피코 왕은 모든 것을 자기가 통제하려고 하는 욕심이 가장 강한 힘을 가지려는 욕심이 되고, 결국 남의 힘을 빼앗는 욕심이 된다.

그런데 그걸 주제로 삼겠다는 디즈니가 욕심을 내다가 이 작품을 망쳤다. 주인공이 공정해야 하고, 공주는 좀 구식으로 보이니 안하고, 여성들의 훌륭한 점을 보여주고, 지나치게 폭력적이지 않고, 악역은 지나치게 나쁘기보다 권위적인 면을 보여주고, 가족의 중요성을 보여주고, 노래도 많이 집어넣고, 지금까지 디즈니 작품들을 최대한 오마주하고 등등…

그런 디즈니의 욕심 덕분에 캐릭터도 애매해지고, 이야기 전개도 애매해지고, 다 애매해졌다고 생각된다.

너희들 작품 중에 성공 모델이 있잖아. 겨울왕국. 왜 그거 발치도 못 따라가냐?

내 평점은 별 2.5개. 최근 디즈니 중 최저. 디즈니 르네상스 2탄(디즈니 리바이벌)은 끝났어.

구글 플레이 콘솔에 왜 몽골은 없지?

안드로이드 앱 출시를 하려면 구글 플레이 콘솔에서 설정을 해야 하는데, 출시 국가에 몽골이 없다.

심지어 러시아도 있고, 자국민들에게 구글 앱 설치가 금지인 중국도 선택에 있는데 몽골이 없음. ㅋ

발행일
카테고리 일상