IT/toy project

[자산관리 day-4.2] 한국거래소(KRX) Open API Django에 셋팅하기(Django) 1

쉰몬 2025. 1. 1. 14:26

원래는 investing.com 에서 한국 주식관련 웹 스크래핑 작업을 하기로 할려고 했으나 아무래도 웹 스크래핑은 자료를 불러 올때 마다 시간도 시간이거니와 형태가 달라지면 다시 주기적으로 수정을 해야되는 번거로운!? 상황이 발생하기에 왠만하면 나중에 Django에 해당 Model 설정해 DB화 시켜서 사용할 것을 고려하면 api를 json 형태로 가져와 내가 원하는 자료들을 가져오는게 꽤 수월 할 것 같아 한국거래소 API를 가져와서 가져오는게 나을듯 싶었다. 나는  코스피,코스닥 관련 해당 정보와 종목을 잘가져와 활용할 수 있는 자료가 필요한거니까. 네이버에 한국거래소 API를 불러오는 사례들을 찾아보니 이미 백태스팅 으로 자료 가져오는 사람들이 python을 이용해 많이 활용하는 것 같다. 그리고 나는 이미 investing.com과 한국 거래소 API(KRX API) 중 어떤게 나에게 더 유리한지 Chat gpt 에게 문의했다. 아..진짜 자료 찾기 너무 편하다.....ㅋㅋㅋ


나는 다시 Chat gpt에 의..존..하였다. ㅋㅋㅋ


실시간 상승 상위거래량 자료를 가져오는 데 있어, Investing.com 웹 스크래핑한국거래소(KRX) Open API 각각의 장단점이 있기 때문에, 어떤 방법이 유리한지 선택하는 데는 몇 가지 요소를 고려해야 합니다.

1. Investing.com 웹 스크래핑

장점:

  • 다양한 시장 정보: Investing.com은 전 세계 주식 시장, 외환, 상품, 지수 등 다양한 시장 데이터를 제공하므로, KOSPI뿐만 아니라 다른 글로벌 지수나 주식에 대한 데이터를 한 곳에서 가져올 수 있습니다.
  • 무료 사용: 웹 스크래핑은 별도의 비용이 들지 않으므로 예산에 제한이 있을 경우 유리할 수 있습니다.
  • 풍부한 콘텐츠: 시가총액, 상승/하락률, 거래량 등 다양한 주식 데이터를 포함한 포괄적인 정보를 제공하고, 웹사이트의 데이터를 실시간으로 크롤링하여 활용할 수 있습니다.

단점:

  • 법적 및 기술적 문제: 웹 스크래핑은 각 웹사이트의 robots.txt나 서비스 약관에 따라 제한될 수 있으며, 사이트의 구조가 변경될 경우 스크래핑 코드를 수정해야 할 필요가 있습니다. 또한, 웹 스크래핑이 트래픽 과부하를 초래할 수 있어 제한될 수 있습니다.
  • 정확도 문제: 웹 페이지의 HTML 구조가 변경되면 실시간 데이터를 가져오는 데 문제가 생길 수 있습니다.
  • 속도 문제: 웹 스크래핑은 실시간으로 빠른 응답을 얻는 데 있어 다소 느릴 수 있습니다. 특히 많은 페이지를 스크래핑하는 경우 서버의 부담이 커질 수 있습니다.

2. 한국거래소(KRX) Open API

장점:

  • 공식 API: 한국거래소의 Open API는 공식적으로 제공되며, 실시간 데이터에 접근할 수 있어 정확한 데이터 제공을 보장합니다.
  • 안정성: 정부에서 제공하는 공식 API이기 때문에 법적 문제불안정성이 상대적으로 적습니다. 또한 한국거래소의 데이터는 신뢰성이 높고, 정해진 규격으로 제공되므로 데이터를 처리하는 데 있어 예측 가능성이 큽니다.
  • 다양한 데이터 포인트: KOSPI를 포함한 다양한 한국 주식 시장 데이터를 실시간으로 제공하며, 상위 상승 종목, 거래량, 시가총액 등의 데이터를 쉽게 가져올 수 있습니다.

단점:

  • 제한된 데이터: 한국거래소 API는 주로 한국 시장에 집중된 데이터만 제공합니다. 따라서 글로벌 시장에 대한 정보나 다양한 다른 금융 데이터가 필요할 경우 별도의 데이터 소스가 필요합니다.
  • API 사용량 제한: Open API에는 일정한 호출 제한이 있을 수 있으며, 실시간 데이터의 경우 데이터 갱신 주기API 호출 수에 제한이 있을 수 있습니다.

3. 비교 및 추천

항목 Investing.com 웹 스크래핑 KRX Open API

실시간 데이터 웹 페이지 업데이트 주기나 서버 응답에 따라 다소 느림 실시간 데이터를 안정적으로 제공
다양성 글로벌 시장을 포함한 다양한 데이터 제공 한국 주식 시장(KOSPI, KOSDAQ) 관련 데이터 제공
법적 문제 스크래핑 규정 및 법적 제한 가능성 존재 공식 API로 법적 문제가 적음
정확성 웹 페이지 구조 변경 시 데이터 추출 불안정 정확하고 안정적인 공식 데이터
속도 페이지 응답 속도에 따라 느릴 수 있음 빠르고 실시간 처리 가능
사용 용이성 웹 크롤링 코드 작성 필요 API 호출을 통해 간단히 사용 가능

결론:

  • 한국거래소(KRX) Open API가 실시간 상승 종목, 거래량 등 정확하고 빠른 데이터를 제공하기 때문에 실시간 트래킹이나 금융 서비스에 더 유리합니다. 공식 API이므로 법적 안정성정확성이 보장됩니다.
  • Investing.com 웹 스크래핑은 전 세계 다양한 시장 데이터를 필요로 하거나, 다양한 금융 정보가 필요한 경우 유용할 수 있으나, 속도정확성에서 KRX Open API에 비해 단점이 있을 수 있습니다.

따라서, 한국 시장실시간 상승/하락거래량 데이터를 정확히 추적하고자 한다면 한국거래소(KRX) Open API가 더 유리합니다.


정말 야무지게 잘 알려주는 덕분에;; 나는 한국 거래소에 가서 api를 신청하게 되었다. 

 

1. 해당 사이트에 접속한다. KRX(한국거래소) 에서 제공해 준다. 

http://openapi.krx.co.kr/

 

정보데이터시스템 - OPEN API

 

openapi.krx.co.kr

 

 

2. 한국 거래소에 접속을 했으면 위의 마이페이지를 이용해 "API 인증키 신청"을 선택

 

 

3. "API인증키신청"을 클릭했으면 아래에 개인회원, 법인회원으로 접속을 해주어야 된다. 나는 법인회원이 아닌 개인회원으로 들어가야되기때문에 아래 개인회원 아이핀인증,휴대폰 인증하기중에 택1을 하여 인증을 한다. 평소 인증하는 것 처럼 하면 되기 때문에 어렵지는 않다. 법인회원은 사업장 등록번호를 사용해 회원가입을 해야되지만 개인회원은 인증하면 끝!

 

4. 인증 작업을 완료한 다음 아래 마이페이지에서 API 인증키 신청을 선택한다.

 

 

5. 위의 화면을 선택하면 아래와 같이 나오는데 나는 이미 인증키를 발급한 이력이 있어 인증키 발급내역 바로가기 를 이동

 

6. 아래의 API 인증키 발급내역 의 인증키를 복사해서 Django 에 반영 해주어야 한다.