기획/데이터 리터러시

엑셀 파워쿼리 공공데이터 API 연동하기

기디개 2021. 12. 15.
반응형

api란?
쉽게 말해 바깥과 안이 만날 수 있게 도와주는 '창'이자 '표'라고 볼 수 있다.

네이버와 관련없지만 네이버지도를 사용하고 있는 웹사이트
= 네이버지도 api를 끌어오는 방식을 사용하고 있을 것이다.


요즘 날씨가 변덕이 심한데,
여러분은 기상 정보를 확인하기 위해 기상청 사이트를 확인하나? 

날씨 정보는 기상청 외에도 많은 곳에서 전달하고 있다.

하지만 기상 정보는 기상청에서만 생성이 가능하다.

예를들어 네이버가 기상청에 기상정보를 요구하게 되면

기상청은 네이버에게 1을 요구할 것이다. 그리고 기상청은 2를 네이버에 제공할 것이다.
1. 인증키: 인증키(당신이 어떤 사업자, 언제까지 사용할 건지) 보여주세요.
2. 데이터: 3일간의 기상예측정보를 명령어를 정해둘테니 명령어를 가지고 사용하세요.

이 문서에서 우리는 API 데이터를 끌어 낼 수 있는 방법을 알아볼 것이다.


공공데이터 API 연동하기 위해 공공데이터 사이트에 접속하여 연동하고 싶은 데이터에 대해 먼저 권한을 승인 받아야 한다.

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

승인 받는 방법은 다른 블로그를 참고를 하면 좋을 것 같고, 이 문서에서는 공공데이터 API를 엑셀 파워쿼리를 이용하여 다룰 수 있는 방법에 대해 알아보겠다.

승인받은 인증키는 마이페이지에서 확인이 가능하다.

나는 교육용으로 국민연금공단_국민연금가입 사업자 내역을 신청했다.

이 페이지에서 반드시 필요한 정보는 두개다.

1. 인증키 값 2. 참고문서

인증키를 배포하면 처벌 받을 수 있다고 들었다.

 

 

참고문서를 열어보면 대충이렇게 나와있다.

오퍼레이션 목록

getBassInfoSearch 1. 사업장 정보조회
getDetailInfoSearch 2. 상세정보 조회
getPdAcctoSttuInfoSearch 3. 기간별 정보조회

내용이 길기 때문에 1. 사업장 정보조회에 대해서만 보겠다.

(1) 사업장 정보조회 오퍼레이션 명세

요청 메시지 명세

항목명(영문) 항목명(국문) 항목크기 항목구분 샘플데이터 항목설명
ldong_addr_mgpl_dg_cd 법정동주소광역시도코드 2 0 41 시도(행정자치부 법정동 주소코드 참조)
ldong_addr_mgpl_sggu_cd 법정동주소시군구코드 5 0 117 시군구(행정자치부 법정동 주소코드 참조)
ldong_addr_mgpl_sggu_emd_cd 법정동주소읍면동코드 8 0 101 읍면동(행정자치부 법정동 주소코드 참조)
wkpl_nm 사업장명 100 1 삼성전자로지텍주식회사 사업장명
bzowr_rgst_no 사업자등록번호 10 1 124815 사업자등록번호(앞에서 6자리)

응답 메시지 명세

항목명(영문) 항목명(국문) 항목크기 항목구분 샘플데이터 항목설명
dataCrtYm 자료생성년월 6 1 월별 누적데이터로 조회시점에 따라 해당월 표출 자료생성년월
seq 식별번호 4 1 월별 누적데이터로 조회시점에 따라 누적식별번호 표출 식별번호
wkplNm 사업장명 100 1 삼성전자로지텍주식회사 사업장명
bzowrRgstNo 사업자등록번호 10 1 124815**** 사업자등록번호(앞에서 6자리)
wkplRoadNmDtlAddr 사업장도로명상세주소 300 1 경기도 수원시 영통구 삼성로 사업장도로명상세주소
wkplJnngStcd 사업장가입상태코드 1 1 1 1:등록, 2:탈퇴
wkplStylDvcd 사업장형태구분코드 1 1 1 1:법인, 2:개인
ldongAddrMgplDgCd 법정동주소광역시도코드 2 1 41 시도(행정자치부 법정동 주소코드 참조)
ldongAddrMgplSgguCd 법정동주소시군구코드 5 1 117 시군구(행정자치부 법정동 주소코드 참조)
ldongAddrMgplSgguEmdCd 법정동주소읍면동코드 8 1 101 읍면동(행정자치부 법정동 주소코드 참조)

*주황색 표시가 없는 것들은 기본으로 제공되는 값인듯.

③ 요청 / 응답 메시지 예제

* 서비스 인증키 자리에 내 인증키를 삽입하면 된다.

* 주황색 글씨 부분이 요청 메세지 명세의 항목명이다.

따라서, 요청메세지를 쿼리문에 입력을 하기 때문에 응답메세지가 요청메세지에 대한 값들이 나오는 것.

 

자 이제 요청메세지를 엑셀쿼리를 이용해 응답값을 얻어보자.

1. 데이터 - 새쿼리 - 기타원본에서 - 웹에서

header 값이 0 normal service 가 나오는게 정상이라고 하는데, 왜 정상인지는 모르겠다

body 값을 확인하고 데이터 변환 클릭

2. table 값에 내부 행열이 존재한다. 클릭하자.

정상적으로 응답값들이 로드 되는 것을 확인.

닫기 및 로드를 클릭해 응답값을 엑셀로 불러오자.

3. 값이 잘 불러와졌다. 

만약 사업체의 사업자등록번호가 바뀌거나 하는 일이 있다면,

이 문서를 데이터 - 새로고침 했을때 바뀐 정보로 변경이 되는 것을 확인 할 수 있을 것이다.

반응형

댓글

💲 추천 글