ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (OpenAPI)DATA.GO.KR(공공데이터포털): 데이터 추출
    금융퀀트/프로그램기초 2023. 3. 11. 08:52
    반응형

    일반 문서 사용 

    공공데이터 포털(https://www.data.go.kr/)에서 데이터를 제공하는 방식은 파일을 다운로드해서 사용할 수 있도록 제공하는 방식과 OpenAPI를 이용해서 제공하는 방식 두 가지로 나뉜다. 파일로 데이터를 제공할 때는 PDF 파일 형식, CSV 파일 형식, HWP 파일 형식(한글파일) 등 우리가 아는 형식으로 제공되지만 OpenAPI로 데이터를 제공할 때는 XML 형식이나 JSON 형식이라는 생소한 형식으로 제공이 된다. XML과 JSON의 차이는 구 주소랑 신 주소 표기 차이 정도로만 이해하면 된다. 중앙박물관을 "서울특별시 용산구 용산동 6가 168-6"로 표시하든 "서울특별시 용산구 서빙고로 137"로 표시하든 위치는 똑같은 것처럼 XML 형식이든 JSON 형식이든 데이터 위치나 내용은 거의 비슷하다고 생각하면 된다. 

    그림1: 공공데이터 포털 데이터 제공 방식

    일반 파일로 제공되는 데이터도 유의미한 데이터들이 많지만 데이터의 추가 가공이나 조합 등의 측면에서 OpenAPI로 제공되는 데이터가 활용도가 더 높다. 특히 공공데이터 포털에서 대부분의 금융데이터는 OpenAPI를 지원하고 있다.

    API를 이용한 데이터 사용

    개별 데이터 이용 신청

    OpenAPI를 활용하기 위해서는 먼저 필요한 데이터를 검색해서 찾아야 한다. 예를 들어 "주가지수" 관련 데이터가 필요하다고 하면, 아래 그림 2처럼 검색을 해서 "활용신청"을 해야 한다.

    그림2: 주가지수 시세정보 활용신청

    활용신청을 하면 보통 아래 그림 3과 같이 활용목적 분류를 선택하고 간단한 기술을 250자 이내로 한 뒤, 라이선스에 "동의"하고 "활용신청"을 누르는 과정을 거친다. 이때 첨부파일은 안 올려도 된다. 대부분의 데이터는 아래 그림 3의 심의여부에서 확인할 수 있듯이 "자동승인" 대상이기 때문에 신청만 하면 바로 승인을 받을 수 있다.(활용목적을 자세하게 안 적어도 된다는 뜻이다.)

    그림3: 데이터 사용신청

    데이터 스펙 확인

    데이터 신청 및 승인이 완료되면, 마이페이지-> 오픈API-> 개발계정/운영계정에서 그 내역을 확인할 수 있다. 그림 4 왼쪽 하단처럼 승인 목록을 클릭하면 아래 그림 4의 오른쪽과 같이 신청내역, 인증키, 상세기능 정보 등을 표시한 "개발계정 상세보기" 화면이 나온다. "개발계정 상세보기" 화면은 데이터의 실제 사용에 관한 내용을 보여준다. 데이터 스펙에 관한 상세 내역은 "상세설명" 버튼을 클릭하면 나온다.

    그림4: 데이터 신청 결과

    아래 그림 5에서 볼 수 있는 상세 설명에 관리부서 전화번호, 데이터포맷, 키워드 등이 나오는데, 우리가 필요한 것은 주황색으로 표시한 "활용자가이드" 이다. 활용자 가이드에 데이터 포맷이 어떻게 되는지 즉, 데이터의 명확한 스펙이 나온다. 이 문서에서 XML 형식이라면 각 태그가 의미하는 바가 무엇인지 알 수 있는 것이다. 

    그림5 데이터별 사용자 가이드 위치

    금융위원회_지수시세정보 데이터 예시

    OpenAPI 예시 데이터는 그림4의 "개발계정 상세보기" 화면에서 확인할 수 있다.

    그림6: 샘플데이터 뽑아보기

    개발계정 상세보기에서 "활용신청 상세기능 정보" 중 원하는 데이터목록에 그림 6처럼 "확인" 버튼을 누르면 "요청변수"가 활성화된다. 일반 인증키(Encoding)를 serviceKey 칸에 넣고 "미리보기"를 누르면 새로운 URL로 연결되면서 XML 태그로 가득 찬 문서가 그림 7처럼 나온다. 필요에 따라서 pageNo 칸에 페이지 번호 조건을 넣을 수도 있고, basDt 칸에 기준일자를 넣어서 데이터를 미리 볼 수도 있다. 아래는 "금융위원회_지수시세정보" 데이터의 "개발계정 상세보기"에서 API KEY 값을 넣었을 때 보이는 화면이다.

    그림7 XML 데이터 샘플(금융위원회_지수시세정보)

    도대체 이 문서는 어떻게 사용할 수 있는 것일까? OpenAPI라고 해놓고 전부 손으로 하고 있는데 컴퓨터를 어떻게 사용해야 하는 것일까? 다양한 방법이 있겠지만 python을 이용해서 답을 찾아보자.

    반응형
Designed by Tistory.