지금까지 나는 지진 알림 앱과 트위터 계정을 운영해왔다. 기상청 지진 페이지의 정보를 1 ~ 2 초마다 확인해서 지진 정보가 있으면 알려주는 방식이었다. 그런데, 어느 순간부터 지진 알림이 오지 않았다. 기상청이 지진 알림 페이지의 구조를 변경해서 그렇다.
직접 페이지의 정보를 가져오는 방식은 페이지 운영자가 페이지 디자인이나 구조를 조금이라도 바꾸면 오류가 발생하는 문제가 있다. 그래서 이런 일을 막기 위해 API(Application Programming Interface)라는 방식이 존재한다. 서로 언어를 정해놓고 그 언어로만 소통하는 방식이라 할 수 있다.
그럼 기상청이 제공하는 지진 API를 사용하면 되지 않을까?
내가 제작한 앱인데 내 허락도 받지 않고 공공데이터포털에 올라와 있다. 정작 이 앱은 기상청의 지진 정보 API를 사용하지 못했다. 공무원들 참 일 잘한다.
정답은 안된다. 위 사진에 나온 앱이 내가 제작한 앱인데, 정작 이 앱은 API를 활용할 수 없었다. 정부가 오픈한 공공데이터포털에 있는 지진 데이터를 사용하려고 했더니 권한이 없다는 어이없는 메시지가 뜬 것이다. 기상청에 전화를 걸어 전화를 수번 돌려 받은 후 얻은 답변은 "방재 목적의 데이터의 경우 공공기관만 사용 가능하고 일반인에게는 공개되지 않는다" 였다.
어이가 없었다. 왜 재난 정보를 공공기관만 사용 가능하게 만들어 놓은걸까.
지진 API가 제공된다면 분명 보나마나 RESTful API로만 제공될게 뻔하다. RESTful API는 일정 시간마다 계속 지진이 발생했는지 여부를 확인해야 한다. 그리고 심지어 하루에 확인할 수 있는 횟수가 제한되어 있다. 이런 일을 막으려면 RESTful 방식이 아닌 실시간으로 정보가 제공되는 푸시 방식을 이용하면 된다. 카카오톡 알림, 트위터 알림, 네이버 알림.. 이 모든게 푸시 알림이다.
하여간 실시간 푸시 알림 방식을 사용한 API를 공개해 달라는 국민신문고에 민원을 넣었다. 그리고 2017년 6월 17일 답변이 왔다.
❍ 안녕하십니까? 기상청 지진화산센터입니다.
선생님께서 국민신문고를 통해 질의하신 민원을 잘 확인하였으며, 이에 대해 답변 드리겠습니다.
❍ 기상청이 공공데이터포탈을 통해 제공하는 지진관련 API는 현재 방재 목적으로 공공기관에만 제한적으로 서비스되고 있으나, 금년 7월 이후 국민 누구나 사용할 수 있도록 확대할 예정입니다.
❍ 아울러 제안하신 HTML5 웹소켓 기술 기반의 대국민 API 서비스 도입은 서비스 성격, 규모, 상황 등에 따른 장·단점이 있어 현재 시점에서는 도입 계획이 없으나, 향후 도입을 검토해 보겠습니다.
❍ 선생님 질문에 만족스러운 답변이 되었기를 바라며, 답변 내용에 대한 추가사항이나 지진과 관련된 궁금하신 사항이 있으시면 언제든지 기상청 지진정보기술팀 XXX주무관(02-XXXX-XXXX, XXXXXXX98@korea.kr)에게 문의해 주시면
성심 성의껏 안내해 드리도록 하겠습니다.
❍ 국민 여러분의 불편을 최대한 줄이기 위해 더욱 노력하는 기상청이 되겠습니다. 감사합니다. 끝.
API는 제공할 예정이라고 한다. 그런데 서버 부하 때문에 웹소켓 방식은 사용이 불가능하다고 한다..... 아니.. 그럼 대체 실시간 지진 정보는 어떻게 얻으라는 걸까.....
그리고 2017년 7월 13일 추가 답변이 돌아왔다.
❍ 안녕하십니까? 기상청 지진화산센터입니다.
❍ 선생님께서 질의하신 내용에 대한 답변 드리겠습니다.
❍ 기상청은 향후 범정부 공공데이터포털을 통해 지진정보 API를 제공할 것이므로 공공데이터포털의 표준에서 허용하는 REST 방식 이외의 방식으로는 서비스를 제공할 수 없는 상황입니다.
❍ 또한 불특정 다수의 일반 국민들을 대상으로 하는 서비스를 연결 지향으로 구현하는 경우 통신 부하는 줄어들더라도 각 연결들을 관리하는 서버측 부담은 오히려 증가하게 되므로 접속량을 예측하기 어려운 대국민 서비스에는 도입을 고려하고 있지 않습니다.
❍ 다만 접속량을 예측할 수 있고 방재 업무를 목적으로 하는 공공기관 대상 서비스에는 향후 도입을 고려할 수 있습니다.
❍ 따라서 민원인께서는 공공데이터포털을 통해 제공될 REST 방식 지진정보 API를 이용해 주실 것을 권고드립니다.
또 공공기관만 제공할 예정이라고 한다. 뭐 푸시 방식 제공하기가 그렇게 힘든건가? 요즘 웬만한 사이트들이나 앱 보면 푸시 알림 사용 안하는 곳이 없다. 그만큼 보편화된 방식인데 접속량을 예측하기가 어려워서 제공하지 않겠다는게 구차한 변명으로밖에 들리지 않는다.
현재, 민원 답변에서 말한 RESTful 지진 API는 오픈되었지만, 사실상 실제 지진 알림 용도로는 사용하기가 힘들다.
이 API의 일일 트래픽 제한은 1000번이다.
하루는 86,400초이다. 즉, 저 API를 17분동안 1초에 한번씩 사용하면 더 이상 사용할 수가 없다. 하루동안 잘 쓸수 있게 나눠서 확인하면 어떨까? 87초에 한번씩 확인하면 가능하다. 그런데 87초에 한번 확인하는게 의미가 있을까? 지진이라는 재해에 87초는 너무 길다.
사실상 이 API를 이용해서 실시간 지진 정보 프로그램을 만든다는 것 자체가 불가능하다는거다.
우선, 계속 기상청과 공공데이터포털에 실시간 푸시 방식의 지진 API를 제공해 달라고 문의할 예정이다. 언제쯤 제대로 된 지진 알림 앱을 제작할 수 있을까?
-- 2017년 7월 24일 추가 --
원래 지난주 목요일쯤에 전화 문의하려고 했는데 담당 직원이 월요일까지 자리에 안 계셔서 오늘 전화로 문의해 보았다.
고민은 해결되었다. 개발 계정에서 일반 계정으로 올리면 십만건까지 오른다고 한다.