[Open DART] 주린이 개발자의 재무제표 데이터 긁어오기
안녕하세요 7개월차 주린이 건리버입니다.
제가 주식을 시작하게된 계기는 회사 지인이 소개 해준 존리 대표의 강의 영상을 보고나서였습니다. 갑자기 "나도 가치투자자가 되고싶어!" 라는 생각이 들어 무작정 증권계좌부터 만들었죠.
그 때도 지금도 복잡한 재무제표를 잘 볼줄은 모릅니다만 그래도 재무제표에서 내가 꼭 보고싶은 정보만 가져와서 관심있는 종목들을 자동으로 비교해줬으면 좋겠다는 생각했습니다. 구글링을 해보니 다른 사람들도 저와 같은 생각을 했는지 파이썬을 이용해 증권관련 웹페이지를 파씽(크롤링)하거나, 증권사 API를 활용해서 분석하고 자동매매하는 사람들도 많이 있는 것 같았습니다. (우리나라에도 정말 대단한 사람들 많습니다...)
그러다가 또 우연히 발견한게 바로 2020년에 서비스를 시작한 Open DART입니다. DART는 대한민국의 전자공시시스템으로 회사가 법적으로 공시해야하는 공시자료들을 모아놓은 곳이라고 보시면 되는데요. 이 방대한 자료들을 전산화해 누구나 사용할 수 있는 서비스를 개시한 것입니다.
물론 실시간 가격 정보 같은 것은 나오지 않습니다. 어디까지나 공시자료를 열람하는 것 뿐이니까요. 제가 Open Dart를 활용하고자 하는 목적도 재무제표에 나오는 정보들을 효율적으로 활용하고싶은 것 뿐입니다.
Open DART 테스팅
그럼 지금부터 Open Dart를 이용한 테스트를 시작해보겠습니다.
우선 Open Dart 사이트로 들어갑니다.
[Open Dart 사이트 바로가기]
인증키 신청하기
"인증키 신청/관리 > 인증키 신청!"
모든 약관에 동의하고 개인정보를 입력한 후 "등록" 버튼을 누르면 이메일을 통해 인증링크를 받을 수 있습니다.
이렇게 인증이 완료되면 API Key가 생성되는데요.
나의 API Key는 "인증키 신청/관리 > OpenAPI 이용현황" 에서 확인하실 수 있습니다.
API Key는 40자리 영문/숫자 조합으로 이루어져있는데 데이터를 요청할 때 기본적으로 필요한 값입니다.
재무제표 데이터 긁어오기
만들어진 API Key를 이용해 재무제표를 데이터를 요청하는 방법입니다.
요청 방법은 모두 개발가이드에 설명되어있습니다.
[상장기업 재무정보 개발가이드 바로가기]
위 설명에도 나와있듯이 GET 요청을 통해 데이터를 요청할 수 있습니다. (GET 요청에 대해서 잘 모르시는 분들은 REST API에 대해서 알아보세요).
저는 처음에 corp_code(고유번호)가 종목코드를 나타내는 줄 알고 종목코드 "005930"(삼성전자)_를 넣어보니 조회가 안됩니다. Open DART에서는 종목코드가 아닌 회사별 고유번호를 따로 제공하고있습니다. _값설명_에 나와있듯이 _"개발가이드 > 공시정보 > 고유번호 API 조회 가능" 에 가시면 고유번호를 받을 수 있는 방법이 자세히 설명 되어있습니다.
위 설명과 같이 테스트 해봅시다.
https://opendart.fss.or.kr/api/corpCode.xml?crtfc\_key=\[API인증키\]
웹브라우저를 열고 URL에 API Key를 포함해서 입력해보니 "corpCode.exe" 라는 이름의 파일 하나가 다운로드 됩니다.
이 파일의 확장자를 .zip으로 바꾸고 압축을 풀면 "CORPCODE.xml" 파일이 생성됩니다.
이 파일에서 보이는 삼성전자의 고유번호는 "00126380" 이네요.
위에서 찾은 고유번호로 다시 한 번 조회 해봤습니다. 제 52기 3분기말 유동자산 203조원이, 실제 제무제표와 일치함을 확인해봤습니다. (참고로 아래 제가 사용한 툴은 Postman이라는 툴입니다. REST API를 테스트할 때 유용한 툴이니 관심있으신 분들은 https://www.postman.com/ 을 방문해보세요)