네이버 지도, 구글 지도를 이용한 병원 찾기, 맛집 검색ㅣ실시간성 원천 데이터를 수집하는 OPEN API 활용법!
상태바
네이버 지도, 구글 지도를 이용한 병원 찾기, 맛집 검색ㅣ실시간성 원천 데이터를 수집하는 OPEN API 활용법!
  • 김동현
  • 승인 2022.01.18 09:14
  • 조회수 3529
  • 댓글 0
이 콘텐츠를 공유합니다

디지털 시대 우리들은 미디어를 통하여 수많은 통계와 마주한다. 그러나 누구나 한 번쯤 뉴스에 나오는 내용에 대해 “저 통계는 신뢰할 수 있는 걸까?” 하는 의구심이 생기는 때가 있었을 것이다. 또는 단순하게 알려주는 평균 수치 말고 좀 더 다양한 지표와 세부적인 내용을 알아보고 싶은 경우도 있을 것이다.

Same Stats, Different Graphs: Generating Datasets with Varied Appearance and Identical Statistics through Simulated Annealing
Same Stats, Different Graphs: Generating Datasets with Varied Appearance and Identical Statistics through Simulated Annealing

위 그림은 13가지의 모양이 천차만별 다른 분포이지만, X축, Y축의 평균과 분산, 상관관계가 모두 같은 산점도다. 다시 말해, 맨 위의 공룡 그림은 나머지 12개의 통계 지표와 동일하다. 이 그림이 시사하는 바는 통계의 단순 지표는 데이터의 진정한 내용을 담을 수 없으며, 특히, 이상치에 민감하게 반응하는 평균만 추정하는 것은 큰 오류를 범할 수 있음을 말한다.

이와 더불어, 데이터의 수집 경로, 수집 방법, 이상치와 결측치 처리, 시각화 방법 등에 의해서 동일한 데이터임에도 분석가의 관점에 따라 다양한 해석이 가능하기도 하다.

따라서, 어디선가 접한 통계 지표에 의구심이 들었을 때 그것을 해소하는 방법은 해당 자료의 원본 데이터를 다각도로 분석해 보는 것이다. 그런데, 분석을 하려면 일단 데이터가 있어야 할 텐데 분석 목적에 맞는 질 좋은 데이터는 어떻게 구할 수 있을까?

 

실시간 원본 데이터를 얻는 방법, OPEN API

데이터를 취득하는 방법은 여러 가지가 있다. 원하는 데이터를 가지고 있는 기관에 연락하여 메일로 전달받을 수도 있고, 공개된 온라인 사이트에서 샘플링 된 CSV 또는 엑셀파일을 다운 받거나, 통계청이나 전자공시시스템 같은 기관에서 제공하는 1차 가공 자료를 확인하는 방법도 있다.

하지만 이런 방법으로는, 데이터의 원래 그대로의 방대한 모습을 확인하기 어렵다. 이 글에서는 시시각각 갱신되는 실시간성 원천 데이터(Real-time Raw Data)를 얻을 수 있는 OPEN API 활용법을 소개하고자 한다.

OPEN API란 웹이나 애플리케이션에서 제공하는 서비스나 데이터를 누구나 활용할 수 있도록 원천 소스 또는 데이터를 외부에 공개하는 인터페이스 방식을 의미한다. 네이버 지도나, 구글 지도에서 제공하는 지도 서비스 API는 다양한 맛집 조회 서비스나, 병원 찾기 등 다양한 모바일 앱에서 활용되고 있다. 또 다른 예로, 증권사에서 제공하는 API는 개인투자자 자동매매 시스템 등에 활용되기도 한다.

이처럼 우리나라 상당수의 공공기관과 민간기업은 그들이 제공하는 서비스 또는 데이터에 일반 사용자들이 접근하여 사용할 수 있도록 하는 OPEN API를 제공하고 있고, 대부분이 무료로 제공 되고 있으며 API를 활용한 인사이트 발견과 서비스 개발 사례를 어렵지 않게 찾아볼 수 있다

특히, 우리나라는 공공데이터 포털을 통해 도로명 주소 조회 서비스, 동네 예보정보조회 서비스 파일 데이터 49,233, OPEN API 7,982건을 제공하고 있다. (2021 11 기준)

언론에서 보도되는 많은 공공기관 자료는 공공데이터 포털을 통해서 원천 데이터를 확인할 있다.

공공데이터 포털 제공 데이터 MAP
공공데이터 포털 제공 데이터 MAP

모두를 위한 OPEN API, 어떻게 사용해야 할까?

최근 공공데이터 포털의 인기도 1등인 데이터는 바로 코로나 관련 데이터이다. 질병관리청에서 제공하는 원본 데이터를 공공데이터 포털에서 수집하는 방법을 알아봄으로써, OPEN API의 일반적인 사용 방법에 대해 알아본다.

① API KEY 발급받기

일반적으로 OPEN API 제공 사업자는 API에 접근할 수 있는 사용자 권한을 부여하기 위한 회원가입과 유사한 API KEY 신청 절차를 요구한다. 공공데이터 포털의 경우, 아래 그림과 같이 원하는 데이터의 상세 화면에 있는 활용신청 버튼을 통하여 API KEY를 발급받을 수 있다.

공공데이터 데이터별 활용신청 화면
공공데이터 데이터별 활용신청 화면

API KEY가 발급되고 나면 아래와 같이 일반 인증키 란에 마치 비밀번호처럼 사용되는 신청자의 인증키가 나오게 된다.

API KEY 발급 기본 정보 및 서비스 정보
API KEY 발급 기본 정보 및 서비스 정보

② 데이터 요청하기

이제 데이터를 얻는 방법은 간단하다. 인터넷 주소창의 End Point에 적힌 URL 주소 뒤에 요청변수(Request Parameter)의 값을 붙여서 제공자 서버에 데이터를 요청(Request)하여 응답(Response)을 받으면 된다. 활용신청 상세 기능 정보의 미리보기를 눌러 결과를 확인할 수 있다.

활용신청 상세기능 정보
활용신청 상세기능 정보

미리보기를 누른 결과는 아래와 같이 서비스 정보에 적힌 대로 XML 방식으로 응답 데이터가 출력된다. 분명 데이터를 요청했는데 웬 이상한 문자들이 나왔다고 생각할 수 있다. 하지만 XML은 데이터를 담는 방식 중 하나이다.

응답 결과 화면
응답 결과 화면

XML이란 eXtensible Markup Language의 약어로서, Markup Language의 HTML과 비슷하지만 다른 형식이다. HTML에서는 미리 선언된 명령어를 사용하는 방식이라면, XML은 데이터를 설명하기 위해 임의로 지은 태그로 데이터를 감싸는 구조다.

왼쪽 사진을 예시로 <item> 에서 </item>사이에 있는 것이 데이터 내용이며, 그 사이의 행들의 보라색 앞 글씨는 컬럼명, 검은색 글씨는 데이터 값이다.

미리보기 주소창에 적힌 URL을 주목해보면, 그 URL의 구조는 상세기능 정보 화면상 입력란에 적힌 내용이 한 줄로 구성되어 있음을 알 수 있다.

http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson?serviceKey=(일반인증키생략)&pageNo=1&numOfRows=10&startCreateDt=20200310&endCreateDt=20211129

 

③ 데이터 테이블 구조로 변환하기

일반적으로 API의 응답 결과는 XML 또는 JSON 형식으로 응답을 받게 되는데 이러한 형식은 간단한 변환 작업을 통해 우리가 잘 알고 있는 형식인 행과 열로 구성된 구조적 데이터 형태로 변환(Parsing)할 수 있다.

코로나 데이터의 경우, URL을 통해 요청하여 서버에서 응답 받은 XML의 구조에서 ‘[item]’ 하위 항목을 데이터 테이블의 열로 구성하여 테이블의 값을 채운다. 해당 과정의 파이썬 코드는 다음과 같다.

 

XML 데이터 파싱 코드와 출력결과
XML 데이터 파싱 코드와 출력결과

 

④ 메타데이터 파악하기

이제 우리는 테이블 형태의 데이터를 얻음으로써, 엑셀이나, R, Python 등 분석 도구를 통하여 데이터를 불러올 수 있게 되었다. 하지만, 데이터를 분석하기 전 항상 메타데이터를 숙지해야 한다. 메타데이터는 데이터의 데이터라고도 불리며, 데이터를 사용하는 설명서이므로 데이터를 처음 접할 때 많은 도움을 얻을 수 있다. 특히, 컬럼별로 어떤 의미를 갖는지 명확히 파악하여야 데이터 분석을 원활히 진행할 수 있다. 코로나 API의 경우, 오른쪽 표와 같이 컬럼별 설명을 참고문서에서 확인할 수 있다.

API 데이터 변수(컬럼) 설명자료
API 데이터 변수(컬럼) 설명자료

마치며

이 글에서, 우리는 누구나 수집 가능한 파일 다운로드 방식에서 한 단계 나아간 방법인 실시간성 원천 데이터를 수집하는 OPEN API 활용 방법에 대해 알아보았다.

디지털 시대는 전문가만이 데이터를 다루는 것이 아닌 대중이 데이터를 다루는 데이터 민주화 시대이다. OPEN API를 통한 데이터 수집 방법은 경쟁력 있는 시민 데이터 과학자가 되기 위해서 반드시 알고 있어야 한다.

다양한 분야의 여러 원천 데이터를 API를 통하여 수집해 보는 경험은, 데이터를 바라보는 관점의 확장과 필요한 데이터를 빠르게 캐치하고 수집하는 능력을 배양하는데 도움이 된다. 많은 시행착오를 통하여 데이터 기초 역량 개발에 힘쓸 것을 권장하는 바이다.

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.