공공데이터 포털 공공데이터포털

#공공데이터API #공공데이터포털

오늘은 공공데이터 포털의 사용법을 정리해 보려고 한다.

이거 왜 해?

최근 정부는 데이터를 중요시하고 투명성 있는 관리를 위해 정보를 오픈했으며 정보를 공개하는 사이트를 개설해 운영하고 있다.

공공데이터 이용정책 공공기관은 공공데이터 포털을 통해 누구나 공공데이터를 편리하게 이용할 수 있도록 보장하고 이용권의 보편적 확대를 위해 노력하고 있습니다.

(공공데이터법 제1조, 제3조)

그런데 왜 이걸 하는가?1. 어떤 정보를 공개하는지 궁금하고 2. API 사용법을 숙지하기 위해 3. 기타 개인적인 목적(?)으로

항상 그렇지만 가장 먼저 해야 할 일은 로그인이다.

회원가입부터 하자.

간단하게 데이터 사용법을 정리하면 1. 사이트에는 사용 가능한 공공 데이터가 크게 두 가지 방법으로 제공된다.

1) 파일 형태:오프라인 파일-파일 형태는 데이터를 다운로드 받아 사용하면 된다.

파일 형태는 CSV, JSON+XML 등이 있다.

2) 서비스 형태: RESTAPI, HTTP를 통해 데이터 수신-서비스 형태는 RESTAPI를 URL 호출하여 데이터를 사용하면 된다.

리턴 포맷은 XML, JSON이다.

- 서비스 사용을 위한 서비스 키를 발급받아야 한다.

(활용신청) 2. 활용하고자 하는 데이터를 선택하면 데이터 활용신청을 할 필요가 있다.

3. 활용신청 승인이 있어야 데이터를 사용할 수 있다.

다만 서비스 형태는 하루 정해진 횟수만큼 서비스 호출이 가능하다.

이 제한이 개발 단계에서만 적용되는지, 운영 전환 시 해제되는지는 확인하지 못했다.

나는 웹 서비스에 연동해 개발해 보자는 목적으로 코로나 관련 API를 활용 신청했다.

API의 경우 신청 시 수~분의 시간이 지나야 사용이 가능하다.

공공데이터 포털 공공데이터포털 1

내용을 보면 2년간 사용 가능함을 알 수 있다.

세부 사항을 살펴보자.

공공데이터 포털 공공데이터포털 2

자세한 내용을 보면 API 사용을 위한 인증키(ServiceKey)를 확인할 수 있다.

이제 API를 사용해 코로나 현황 정보를 받아보자. 상술한 바와 같이 리턴 타입은 XML이다.

API 호출 URL은 상세페이지 참고문서에 기록되어 있으니 참고하면 되고 발췌하여 간략하게 설명해 본다.

http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson?serviceKey=&pageNo=&numOfRows=&startCreateDt=&endCreateDt=

상기 URL은 이와 같이 이해하면 된다.

1. API명 : http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson2.serviceKey : 위 상세페이지에 발행된 String값 3.pageNo : 페이지번호 4.numOfRows : 페이지내 결과수 5.startCreateDt : 검색개시일(YYMDD) 6.endCreateDt : 검색종료일(YYMDD)

예를 들어 2021년 8월 1일부터 15일까지 데이터 호출 URL은 다음과 같다.

(key는 각자 사용) http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson?serviceKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&pageNo=&numOfRows=10&startCreateDt=20210801&endCreateDt=20210815

그리고 결과는 아래와 같이 XML로 리턴됨을 확인할 수 있다.

공공데이터 포털 공공데이터포털 3

리턴 XMLTAG의 내용은 상세 문서에 모두 정의되어 있다.

이렇게 공공데이터 포털에서 RESTAPI를 사용해 정보를 얻는 방법을 정리해봤다.

생각보다 많은 분야의 데이터가 공개돼 있고 만약 본인이 어떤 서비스를 개발하려 한다면 데이터 활용을 통해 프런트만 개발해도 될 것 같다.

다음은 구체적인 서비스 모델을 생각해 실제로 실현해 보자.