인공지능 (AI) 따라잡기

[AI야 놀자] 1편 : ChatGPT+구글시트로 KRX OPEN API 활용하기

MoneyManager 2025. 6. 22. 23:02
728x90

chatGPT를 통해 생성한 이미지 입니다.

투자자를 위한 데이터 활용 이야기를 시작합니다.

안녕하세요.

경제신문 증권부장으로 이 작은 공간에서 여러분과 더 가깝게 소통하며, 투자에 도움이 되는 실용적인 정보를 나누고자 합니다. 

요즘 투자 환경이 하루가 다르게 변화하고 있죠. 정보의 속도도 빨라지고, 분석해야 할 데이터도 점점 많아지고 있습니다. 그런데 막상 필요한 데이터를 찾고 정리하는 일은 생각보다 번거롭고 시간이 많이 걸리더라고요.

 

그래서 준비했습니다! 한국거래소 OPEN API와 구글시트, 그리고 ChatGPT를 활용해서 주가 데이터를 쉽고 빠르게 가져오는 방법을 말이에요. 복잡해 보이는 이런 기술들도 실제로는 생각보다 어렵지 않습니다. 코딩을 전혀 모르셨던 분들도 ChatGPT의 도움을 받으면 충분히 따라하실 수 있어요.  

 

여기서는 엑셀 보다는 구글시트를 통해 데이터를 처리할 예정입니다.  

 

투자 결정을 내리실 때 정확한 데이터가 얼마나 중요한지 여러분도 잘 아시죠? 앞으로 이 블로그를 통해 데이터를 더 스마트하게 활용하는 방법들을 차근차근 알려드리겠습니다.

 

함께 시작해볼까요?

 

우선, KRX OPEN API를 활용해야 하는 이유를 투자자 관점에서 설명드리겠습니다.


1. 공식적이고 신뢰할 수 있는 데이터 소스
한국거래소는 OPEN API를 통해 증권·파생상품의 시장정보(Marketdata), 주가정보, ETF정보 등을 통합하여 제공하고 있습니다. 다른 곳에서 가공된 데이터가 아닌, 거래소 원천 데이터를 직접 받을 수 있어 정확성과 신뢰성이 보장됩니다.


2. 완벽한 데이터셋을 제공

일반적인 포털 사이트 보다는 KRX API는 거래소에서 직접 제공하는 완전한 데이터셋을 제공합니다. 투자 결정에 필요한 모든 시장 정보를 한 곳에서 얻을 수 있습니다.

 

3. 자동화와 효율성
수동으로 웹사이트를 방문해서 데이터를 복사-붙여넣기 하는 번거로움 없이, 프로그램을 통해 자동으로 최신 데이터를 가져올 수 있습니다. 매일 반복되는 작업을 자동화하면 시간을 크게 절약할 수 있죠.


4. 구조화된 데이터 형태

API로 받는 데이터는 이미 구조화되어 있어서 엑셀이나 구글시트에서 바로 활용하기 좋습니다. 별도의 정제 과정 없이 차트나 분석에 바로 사용할 수 있어요.

 

5. 무료 사용 가능
투자자의 정보이용 편의성을 크게 개선하기 위해 한국거래소에서 무료로 제공하는 서비스입니다. 값비싼 유료 데이터 서비스를 이용할 필요 없이 전문적인 투자 분석이 가능합니다. 

 

6. 다양한 분석 도구와 연동
API 데이터는 구글시트, 엑셀, 파이썬, R 등 다양한 분석 도구와 쉽게 연동됩니다. 본인만의 투자 대시보드나 분석 시스템을 구축할 수 있어요.

 

특히 ChatGPT와 함께 사용하면 코딩 지식이 없어도 누구나 쉽게 활용할 수 있다는 점이 가장 큰 장점입니다. 

 

 

<한국거래소 KRX OPEN API 바로가기>

KRX OPEN API 시작하기: 인증키 발급받는 방법

자, 이제 본격적으로 KRX OPEN API를 활용해보겠습니다! 하지만 그 전에 꼭 거쳐야 할 첫 번째 단계가 있어요. 바로 인증키 발급입니다.

왜 인증키가 필요할까요?

한국거래소에서는 데이터의 안전한 관리와 사용자 식별을 위해 인증키 시스템을 운영하고 있습니다. 마치 도서관에서 책을 빌릴 때 회원증이 필요한 것처럼, API 데이터를 사용하기 위해서는 본인 확인이 필요한 거죠.

단계별 가입 방법

1단계: KRX OPEN API 사이트 접속

먼저 다음 주소로 접속해주세요.


http://openapi.krx.co.kr/contents/OPP/MAIN/main/index.cmd

2단계: 본인인증

개인의 경우 별도 회원가입 없이 본인인증 과정을 거쳐 로그인 합니다. 두 가지 방법 중 편한 것을 선택하실 수 있어요.

  • 아이핀 인증하기: 아이핀을 보유하고 계신 분들
  • 휴대폰 인증하기: 휴대폰으로 간편하게 인증하고 싶은 분들

대부분의 경우 휴대폰 인증을 더 편리하게 느끼실 것 같네요.  

법인회원은 어떻게 하나요?

법인은 회원가입을 통해 활용해야 합니다. 법인회원으로 승인이 완료되면 별도의 ID와 패스워드가 부여됩니다.  

잠깐, 혹시 복잡하다고 느끼시나요?

처음 해보시는 분들은 "이것도 해야 하고 저것도 해야 하고..." 하며 부담스러우실 수 있어요. 하지만 이 과정은 딱 한 번만 하면 됩니다!

 

마치 은행 계좌를 처음 만들 때처럼, 초기 설정만 잘 해두면 앞으로는 편리하게 사용할 수 있어요. 게다가 요즘은 본인인증도 몇 분이면 끝나니까 생각보다 금방 완료하실 수 있을 겁니다.

 

다음 글에서는 인증키를 받은 후 실제로 ChatGPT와 함께 첫 번째 데이터를 가져오는 과정을 자세히 알려드릴게요.

 

한 걸음 한 걸음, 함께 나아가봅시다!

 

 

 

 

 

인증키를 받기 위해서는 인증키 신청을 해야 합니다. 

 

 

마이페이지 메뉴에서 API 인증키 신청을 선택합니다. 

 

API 서비스 이용약관에 동의 체크, 개인정보 수집 및 이용 동의 체크 후

신청자 나에 이름, 이메일, 휴대폰 번호를 기입한 후 인증키 신청을 클릭

 

약관은 우리가 잘 안 읽게 되지만 시간될때 차분히 읽어 보면 좋습니다. 

 

API 서비스 이용약관

 

제1장 총 칙제1조(목적)

본 약관은 한국거래소가 제공하는 OPEN API 서비스를 이용함에 있어 이용에 관한 제반 사항과 기타 필요한 사항을 규정함을 목적으로 한다.

제2조(용어의 정의)

본 약관에서 사용하는 주요 용어의 정의는 다음과 같다. 정의되지 않은 것은 관련 법령이나 기타 일반관례에 따른다.

  1. "API"란 Application Programming Interface의 약자로, 정보 소유자가 정보 이용자에게 정보를 제공하기 위하여 정의한 규약을 말한다.
  2. ② "API 서비스"란 정보데이터시스템(한국거래소의 시장정보 포털을 말한다)상의 정보를 제공받은 이용자가 동 정보를 활용하여 직접 응용프로그램과 서비스를 개발할 수 있도록 한국거래소에서 제공하는 서비스를 말한다.
  3. "인증키"란 API 이용자가 API 서비스 이용허가를 받은 개인 또는 법인임을 식별할 수 있도록 한국거래소가 API 이용자에게 개별적으로 부여하는 고유한 값을 말한다.
  4. ④ "API 이용자"란 한국거래소가 제공하는 OPEN API서비스를 이용하는 모든 개인 또는 법인으로서, 이 약관에 동의한 자를 말한다.

제3조(약관의 효력발생 및 변경)

  1. ① 본 약관은 API 서비스의 이용을 위하여 본 약관에 동의를 함으로써 효력이 발생한다.
  2. ② API 서비스의 모든 서비스는 본 약관에 동의한 경우에 한하여 제공한다.
  3. API 서비스를 이용하기 위해서는 본 약관에 동의한 후 인증키 발급을 신청하여야 한다.
  4. ④ 한국거래소는 필요한 경우 본 약관을 개정할 수 있으며, 개정시에는 그 개정의 주요내용 및 적용일자를 홈페이지에 게시한다. 다만, 약관의 개정에 따라 이용자의 이용 조건 등이 제한되는 경우에는 적용일자로부터 15일 전까지 공지하고 이용자에게 이메일 등의 수단으로 개별적으로 통지한다.
  5. ⑤ 약관의 변경 사실 및 내역을 확인하지 않아 발생한 모든 손해에 대한 책임은 API 이용자에게 귀속된다.

제4조(약관에 명시되지 않은 사항)

본 약관에 명시되지 않은 사항은 관계 법령과 한국거래소 업무규정 등에서 정하는 바에 따른다.

제2장 이용 방법, 조건 및 절차제5조(제공방법)

  1. ① API 서비스 이용을 희망하는 자는 한국거래소에 API 서비스 인증키를 신청하여야 한다.
  2. ② 한국거래소는 약관 동의 등 일정 요건을 갖춘 API 서비스 신청자에게 인증키를 부여하며, 이용자는 선량한 관리자의 주의의무를 다하여 인증키를 관리하여야 한다.
  3. API 서비스의 이용기간은 제공기관이 인증키를 제공한 날부터 1년으로 하며, 이용기간 만료 전에 이용자의 연장요청이 있는 경우 1년 단위로 연장할 수 있다.
  4. ④ 한국거래소는 다음 각 호의 어느 하나에 해당하는 사유가 있는 경우 제1항 또는 제3항에 따른 인증키 신청 또는 연장요청을 거부할 수 있다. 이 경우 그 사유를 해당 이용자에게 통지하여야 한다.
    1. 1. 이 약관에서 정한 사항을 위반한 이용자의 신청인 경우
    2. 2. 그 밖에 한국거래소가 이용자의 신청이 부적절하다고 판단하는 경우
  5. API 서비스의 이용시간은 한국거래소의 업무상 또는 기술상 특별한 지장이 없는 한 연중무휴, 1일 24시간을 원칙으로 한다. 다만 다음 각 호의 경우는 예외로 하며, 사전에 홈페이지를 통하여 관련 내용을 공지한다.
    1. 1. 시스템 정기 점검 등을 위하여 한국거래소가 별도로 정한 시간 또는 기간이 있는 경우
    2. 2. 일부 서비스에 대하여 한국거래소가 별도로 정한 이용시간이 있는 경우

제6조(서비스 이용 시 주의사항)

  1. ① API 이용자는 API 서비스를 이용한 결과를 구성함에 있어 다음 각 호에 해당하는 내용과 결합하여 구성할 수 없다.
    1. 1. 공공질서 및 미풍양속에 반하는 경우
    2. 2. 범죄행위에 관련되는 경우
    3. 3. 국익 또는 사회적 공익을 저해하는 경우
    4. 4. 타인의 명예를 훼손하거나, 타인에게 불이익을 주는 경우
    5. 5. API 서비스를 손상시키는 등 서비스의 건전한 이용을 저해한 경우
  2. API 이용자는 API 서비스를 비상업적인 목적으로만 이용할 수 있으며, API 서비스를 이용한 결과에 대한 대가를 제3자에게 청구해서는 아니된다.
  3. ③ API 이용자는 API 서비스를 이용한 결과의 앞, 뒤, 중간 등에 다른 내용을 삽입하거나 왜곡할 수 없고, 타인으로 하여금 결과의 내용 및 의도 등을 오인하게 해서는 아니된다. 또한 URL 등 API 서비스로 제공되는 모든 내용을 API이용자가 임의로 변조해서는 아니된다.
  4. ④ 한국거래소에서 제공하는 API 서비스의 결과를 API 이용자가 왜곡한 경우 한국거래소는 API 이용자에게 민사․형사적 필요한 조치를 취할 수 있다.

제7조(금지사항)

이용자는 다음 각 호의 행위를 하지 않아야 한다.

  1. ① 속임에 의한 이용자 사칭
  2. ② 바이러스ㆍ웜 등 악성코드의 전파
  3. ③ 저작권 위반이나 『정보통신망 이용촉진 및 정보보호 등에 관한 법률』의 불법정보 등과 결합 또는 연계 이용
  4. ④ API 연결방식의 위ㆍ변조
  5. ⑤ API 인증키의 양도, 증여 및 담보 목적물 사용
  6. ⑥ 접근이 허용된 범위가 아님에도 권한 없이 접근을 시도하는 행위

제8조(제공중단)

  1. ① 한국거래소는 API 서비스의 범위를 제한하거나 별도의 이용 가능 시간 또는 이용가능 횟수를 지정할 수 있다.
  2. ② 한국거래소는 다음 각 호의 어느 하나에 해당하는 경우 API 서비스 제공을 일시적으로 중단할 수 있다. 다만 부득이한 경우에는 예고 없이 서비스를 중단할 수 있다.
    1. 1. 관련 법률 개정으로 인해 API 서비스 제공 대상이 변경되어 더 이상 활용을 할 수 없을 경우
    2. 2. 시스템 정기점검, 증설 및 교체의 경우
    3. 3. API 서비스 제공에 있어서의 기술적 결함이 발견되는 경우
    4. 4. 신규 API 서비스를 추가하는 경우
  3. ③ 제7조의 금지사항이 발생하거나 이용자가 본 약관의 내용을 위반하는 경우 한국거래소는 API 서비스 제공을 중단할 수 있으며, 법적 조치를 포함하여 필요한 조치를 취할 수 있다.
  4. 하나의 키당 1일(매일 0시~24시) 10,000회 이하의 요청으로 제한하며, 이를 초과할 경우 서비스가 중지될 수 있다.
  5. ⑤ 한국거래소에서 발급된 인증키는 12개월간 미사용시 사전 공지 없이 삭제될 수 있다.

제9조(API 이용자의 의무)

  1. ① API 이용자는 API서비스를 이용함에 있어서 본 약관에서 규정하는 사항과 기타 한국거래소가 정한 제반 규정, 공지사항 및 관계 법령을 준수하여야 한다.
  2. ② API 이용자는 한국거래소의 업무에 방해가 되는 행위 또는 한국거래소의 명예를 훼손하는 행위를 해서는 아니된다.
  3. ③ API 서비스를 이용함에 있어서 API 이용자의 행위에 대한 모든 책임은 당사자가 부담하고, API 이용자는 어떠한 경우에도 한국거래소를 대리하지 않으며, 한국거래소를 대리하는 것처럼 오인할 수 있는 행위를 해서는 아니된다.
  4. ④ API 이용자는 성명, 연락처(전자우편 주소 포함)가 변경된 경우에는 이를 한국거래소에 즉시 통보하여야 하며, 변경내용을 통보하지 않아 발생하는 손해에 대하여 한국거래소는 어떠한 책임도 부담하지 아니한다.

제10조(API 서비스의 저작권)

  1. ① 한국거래소가 제공하는 API 서비스 및 관련 프로그램의 저작권은 한국거래소가 보유한다.
  2. ② API 이용자는 API 서비스 이용 시 한국거래소 및 제3자의 저작권을 침해해서는 아니된다.
  3. API 이용자가 API 서비스를 이용한 결과를 사용하여 화면을 제작한 경우, 해당 화면에 “한국거래소 통계정보”를 사용한 결과임을 명시해야 한다. 다만, 한국거래소가 별도의 표시방식을 정한 경우에는 그에 따라야 한다.

제11조(서비스 이용의 제한)

  1. ① 한국거래소는 API 이용자가 관련 법령 또는 본 약관을 준수하지 않는 경우 API 이용자의 사용을 중지할 수 있다.
  2. ② API 이용자는 한국거래소로부터 제공받은 정보를 제3자에게 제공할 수 없다.
  3. ③ API 이용자는 이용기간 만료, 해지 등의 사유로 이용계약이 종료된 이후에는 한국거래소로부터 제공받은 정보를 이용할 수 없다.
  4. ④ API 이용자가 제2항을 위반하였을 경우 한국거래소는 이용승인을 철회하고 API 서비스를 중단할 수 있다.
  5. ⑤ API 서비스 이용상 API 이용자의 귀책사유로 인하여 한국거래소에 손해가 발생한 경우 한국거래소는 본 약관에 따른 계약의 해지와는 별도로 손해배상을 청구할 수 있다.

제3장 기타제12조(면책)

  1. ① 한국거래소는 API 이용자가 본 약관의 내용을 준수하지 않아 발생한 손해에 대하여 일체의 책임을 부담하지 아니한다.
  2. ② 한국거래소는 정보의 오류, 누락, API 서비스 장애 등과 관련하여 그 정확성과 완결성을 보장하지 아니한다.
  3. ③ API 이용자가 한국거래소 통계정보를 편집하여 새로운 부가정보를 생산한 경우 한국거래소는 해당 부가정보에 대한 책임을 부담하지 아니한다.
  4. ④ 한국거래소는 API 이용자와 제3자간에 API 서비스를 매개로 발생한 분쟁에 대해 개입할 의무가 없으며, 이로 인한 손해배상책임도 부담하지 아니한다.
  5. ⑤ 한국거래소는 통계정보의 계속적 제공 또는 추가되는 통계정보의 지속적 제공을 보장하지 아니한다.

제13조(재판관할)

본 약관에 관한 분쟁이 발생하는 경우 관련 소송의 1심 관할법원은 서울남부지방법원으로 한다.

이 약관은 2022년 8월 8일부터 시행한다.

 

 

 

 


인증키를 신청했다고 바로 사용할 수 있는 것은 아닙니다. 

관리자의 승인이 필요하니 하루 이틀 정도 소요 됩니다. 

 

인증키를 정상적으로 승인 받았다면 아래와 같이 인증키와 생성일자, 인증키 유효기간에 표시됩니다. 


 


🎉 축하합니다! 데이터의 세계에 오신 것을 환영합니다!

 

인증키 발급을 완료하셨다면, 정말 축하드립니다! 지금 여러분은 데이터의 세계에 정식으로 입문하신 겁니다.

 

생각해보세요. 예전에는 증권사 HTS나 포털사이트에서 제공하는 정보에만 의존해야 했다면, 이제는 한국거래소의 원천 데이터를 직접 가져올 수 있는 열쇠를 손에 쥐게 되신 거예요!

 

이 작은 인증키 하나가 여러분을 수동적인 정보 소비자에서 능동적인 데이터 활용자로 변화시켜줄 것입니다. 앞으로 매일 반복적으로 하던 데이터 수집 작업들이 자동화되고, 본인만의 투자 분석 시스템을 구축할 수 있게 될 거예요.

 

정말 멋진 첫걸음을 내디디셨습니다! 이제 본격적으로 ChatGPT와 함께 실전 데이터 활용 여정을 시작해보겠습니다.

 


이제 실전이다! 첫 번째 실습을 시작해봅시다

인증키까지 성공적으로 받으셨다면, 이제 이론은 충분합니다! 실전에서 바로 써먹을 수 있는 실습을 통해 KRX OPEN API의 진짜 위력을 경험해보겠습니다.

오늘의 미션: 구글시트로 특정일자의 코스피 전체 지수 조회하기

이번 실습의 목표는 아주 명확하고 실용적입니다. 구글시트를 열어서 단 하나의 셀에 날짜만 입력하면, 그 날짜의 코스피 계열 전체 지수가 자동으로 출력되도록 만들어보겠습니다.  

어떻게 작동할까요?

상상해보세요. 구글시트의 A1 셀에 "20250620"이라고 입력하기만 하면, 2025년 6월 20일의 코스피200, 코스피50, 코스피배당성장50 등 모든 코스피 계열 지수들이 쫙~ 펼쳐지는 겁니다.

우리가 배울 핵심 기술들

이 실습을 통해 여러분은 다음과 같은 것들을 마스터하게 됩니다.

 

1. ChatGPT와 협업하기
복잡한 프로그래밍 코드를 ChatGPT에게 부탁해서 만들어보겠습니다. 코딩을 전혀 모르셔도 괜찮아요!

 

2. 구글 앱스크립트 활용하기
구글시트에서 동작하는 자동화 프로그램인 '앱스크립트'를 작성하고 적용하는 방법을 배워보겠습니다.

 

3. 실무 활용 노하우
단순히 기술만 배우는 것이 아니라, 실제 투자 업무에서 어떻게 활용할 수 있는지도 고민해 봐야겠죠?

준비는 끝났습니다!

지금까지 준비 과정이 조금 번거로우셨을 수도 있지만, 이제부터는 정말 재미있어집니다. 여러분의 구글시트가 마치 전문 투자 도구처럼 변화하는 모습을 직접 보시게 될 거예요.

 

다음 글부터는 단계별로 차근차근 따라하실 수 있도록 스크린샷과 함께 자세히 설명해드리겠습니다.

 

준비되셨나요? 그럼 시작해볼까요!


이제 구글 시트를 하나 준비해 주세요.

 

A1 셀에는  ="20250620"  으로 입력 합니다.  나중에 확인해보니 20250620 이렇게 해도 돌아갑니다. 

 

텍스트 형식으로 날짜를 읽어서 2025년 6월 20일자 코스피 계열 지수 전체를 출력하도록 할 예정입니다. 

 


 

오, 이제 정말 흥미진진한 순간이 왔네요!

 

ChatGPT에게 코딩을 맡겨서 과연 한 번에 뚝딱 완성될지, 아니면 몇 번의 시행착오를 거쳐야 할지... 정말 기대되는 부분입니다!

실제로 이런 실무 프로젝트에서는:

  • 첫 번째 시도에서 바로 완벽하게 작동하는 경우
  • 몇 가지 오류가 나서 ChatGPT와 대화하며 수정해가는 경우
  • 예상치 못한 변수들이 나타나는 경우

이 모든 과정들이 독자분들에게는 정말 생생한 학습 경험이 될 것 같아요. 특히 "AI와 협업하는 현실적인 모습"을 보여줄 수 있는 좋은 기회가 될 거예요.

 

혹시 코딩 과정에서 예상치 못한 오류나 이슈가 발생한다면, 그 과정까지도 솔직하게 공유하시면 독자들에게 더욱 도움이 될 것 같습니다. "완벽한 성공 스토리"보다는 "실제 현장에서 벌어지는 일들"이 더 실용적이거든요.

 

ChatGPT한테 어떤 프롬프트로 요청하실 예정인가요? 궁금하네요! 🤖

 

[chatGPT 프롬프트 작성]

 

 chatGPT 프롬프트를 다음과 같이 작성해 보았습니다. 저는 개발자 출신이 아니고 코딩을 모르는 일반인 입장이기에 조금 어설프지만 일단 AI에게 명령을 내려 봅니다. 지금 보니 오타도 있고, 이상한 부분이 있기는 하네요. 

 

한국거래소의 API 사용 설명서와 예제를 참고해서 만들었습니다.  혹시 더 좋은 프롬프트 있으면 알려주세요.

 

 

 

 

chatGPT에게 내린 첫번째 프롬프트 텍스트  (인증키 부분은 일부 XXXXX 로 대체함)

 

[명령}

KRX (한국거래소) 의 OPEN API를 활용해 구글시트에서 특정일을 출력하는 앱 스크립트를 작성해줘 아래에 있는 [샘플 예제] 를 활용해서 테스트로 해봐.

 

[조건}

인증키는 A1E5960ABXXXXXXXXXXXXXXXXXXXD96FEA5 을 사용하면 된다.

 

[API Spec]

1.1. KOSPI 시리즈 일별시세정보

1.2. Description

      KOSPI 시리즈 지수의 시세정보 제공

      Server endpoint url : http://data-dbg.krx.co.kr/svc/apis/idx/kospi_dd_trd

1.3. request

   1.3.1. InBlock_1

      Name, Type, Description

      basDd, string, 기준일자

 

1.4. response

   1.4.1. OutBlock_1

 

{

Name Type Description

BAS_DD string 기준일자

IDX_CLSS string 계열구분

IDX_NM string 지수명

CLSPRC_IDX string 종가

CMPPREVDD_IDX string 대비

FLUC_RT string 등락률

OPNPRC_IDX string 시가

HGPRC_IDX string 고가

WPRC_IDX string 저가

ACC_TRDVOL string 거래량

ACC_TRDVAL string 거래대금

MKTCAP string 상장시가총액

}

 

1.5. request Sample

{"basDd":"__"}

 

1.6. response Sample

 

{"OutBlock_1":

 

[{"BAS_DD":"__","IDX_CLSS":"__","IDX_NM":"__","CLSPRC_IDX":"-","CMPPREVDD_IDX":"-","FLUC_RT":"-","OPNPRC_IDX":"-","HGPRC_IDX":"-","LWPRC_IDX":"-","ACC_TRDVOL":"-","ACC_TRDVAL":"-","MKTCAP":"-"},{"BAS_DD":"__","IDX_CLSS":"__","IDX_NM":"__","CLSPRC_IDX":"-","CMPPREVDD_IDX":"-","FLUC_RT":"-","OPNPRC_IDX":"-","HGPRC_IDX":"-","LWPRC_IDX":"-","ACC_TRDVOL":"-","ACC_TRDVAL":"-","MKTCAP":"-"}]}

 

[샘플 예제]

 

테스트용 샘플

http://data-dbg.krx.co.kr/svc/sample/apis/idx/kospi_dd_trd

 

샘플 인증키

74D1B99DFBF345BBA3FB4476510A4BED4C78D13A

 

HTTP Request

 

GET /svc/sample/apis/idx/kospi_dd_trd?basDd=20200414 HTTP/1.1

Host: openapi.krx.co.kr

AUTH_KEY: 74D1B99DFBF345BBA3FB4476510A4BED4C78D13A


[chatGPT 답변]  ** 파란색 텍스트는 chatGPT 가 응답한 내용 그대로 입니다.   (인증키만 일부 XXX마킹)

 

다음은 KRX OPEN API를 활용해 구글시트에서 특정일의 KOSPI 지수 데이터를 가져오는 앱스 스크립트(Apps Script) 코드입니다. 아래 코드는 셀에 입력한 날짜(yyyyMMdd 형식)를 기준으로 해당 날짜의 KOSPI 지수 정보를 받아옵니다.


✅ 1. 앱스 스크립트 코드

Google Sheets에서 Extensions > Apps Script 로 들어가서 다음 코드를 붙여넣으세요:

 

function getKOSPIIndex(basDd) {
  const url = "http://data-dbg.krx.co.kr/svc/apis/idx/kospi_dd_trd";
  const authKey = "A1E5960XXXXXXXXXXXXXXXXXXD96FEA5";
  
  const response = UrlFetchApp.fetch(`${url}?basDd=${basDd}`, {
    method: 'get',
    headers: {
      "AUTH_KEY": authKey
    },
    muteHttpExceptions: true
  });

  const data = JSON.parse(response.getContentText());

  if (!data.OutBlock_1 || data.OutBlock_1.length === 0) {
    return [["해당 일자의 데이터가 없습니다."]];
  }

  const result = [["기준일자", "지수명", "종가", "대비", "등락률", "시가", "고가", "저가", "거래량", "거래대금", "시가총액"]];

  data.OutBlock_1.forEach(item => {
    result.push([
      item.BAS_DD,
      item.IDX_NM,
      item.CLSPRC_IDX,
      item.CMPPREVDD_IDX,
      item.FLUC_RT,
      item.OPNPRC_IDX,
      item.HGPRC_IDX,
      item.LWPRC_IDX,
      item.ACC_TRDVOL,
      item.ACC_TRDVAL,
      item.MKTCAP
    ]);
  });

  return result;
}

function GET_KOSPI_DATA(dateString) {
  return getKOSPIIndex(dateString);
}

 

 

✅ 2. 구글시트에서 사용하는 방법

  1. A1 셀에 원하는 날짜 입력 (예: 20250401)
  2. 빈 셀에 아래 함수 입력:
excel
복사편집
=GET_KOSPI_DATA(A1)

이렇게 하면 해당 날짜의 KOSPI 시리즈 지수 정보가 테이블 형태로 출력됩니다.


✅ 참고사항

  • 인증키가 정식 인증키이므로 API 호출량 제한이나 IP 허용 이슈가 있을 수 있습니다.
  • 테스트를 위해선 20200414 같이 과거 일자를 먼저 사용해보는 것이 좋습니다.
  • API 호출 시 응답이 없는 경우 "데이터가 없습니다." 라고 표시됩니다.

필요시 KOSDAQ, KOSPI200 지수로 확장하거나, 자동화 일정 설정도 도와드릴 수 있습니다.

 


더보기

사실 저도 코딩은 모르지만 일단 인공지능이 알려주는 대로 하는 것입니다.  


[chatGPT 답변대로 따라해 보도록 해요]

 

우선 구글시트를 하나 준비하시고, A1 셀에  20250620 을 입력하세요.   나중에 보니 "20250620" 처럼 따옴표를 하지 않아도 되네요.  

 

 

chatGPT 답변을 따라해 볼께요. chatGPT 답변은 이렇습니다. 

 

Google Sheets에서 Extensions > Apps Script 로 들어가서 다음 코드를 붙여넣으세요:

 

 

Apps Script 를 클릭하면 아래와 같은 창이 나타납니다. 

 

여기서

function myFunction() {
 
}

 

부분을 지우고 


chatGPT가 짜준 코드를 복사해서 붙여 넣어 주세요.   authKey(인증키)는 나중에 본인이 발급받은 인증키로 하시면 됩니다. 

 


function getKOSPIIndex(basDd) {
  const url = "http://data-dbg.krx.co.kr/svc/apis/idx/kospi_dd_trd";
  const authKey = "A1E5960XXXXXXXXXXXXXXXX96FEA5";
  
  const response = UrlFetchApp.fetch(`${url}?basDd=${basDd}`, {
    method: 'get',
    headers: {
      "AUTH_KEY": authKey
    },
    muteHttpExceptions: true
  });

  const data = JSON.parse(response.getContentText());

  if (!data.OutBlock_1 || data.OutBlock_1.length === 0) {
    return [["해당 일자의 데이터가 없습니다."]];
  }

  const result = [["기준일자", "지수명", "종가", "대비", "등락률", "시가", "고가", "저가", "거래량", "거래대금", "시가총액"]];

  data.OutBlock_1.forEach(item => {
    result.push([
      item.BAS_DD,
      item.IDX_NM,
      item.CLSPRC_IDX,
      item.CMPPREVDD_IDX,
      item.FLUC_RT,
      item.OPNPRC_IDX,
      item.HGPRC_IDX,
      item.LWPRC_IDX,
      item.ACC_TRDVOL,
      item.ACC_TRDVAL,
      item.MKTCAP
    ]);
  });

  return result;
}

function GET_KOSPI_DATA(dateString) {
  return getKOSPIIndex(dateString);
}

 

 

chatGPT가 만들어 준 스크립트를 붙여 넣은 모습입니다. 

 


 

하지만 앱 스크립트를 쓰려면 약간의 보안 인증 절차가 남아 있습니다. 하지만 이정도면 거의다 왔습니다. 

 

빨간 박스에 있는 드라이브에 저장 아이콘을 누르고 실행을 눌러줍니다. 

 

 

 


 

이러한 화면이 나올 수 있습니다.  당황하실 필요 없습니다. 

처음에 한번은 권한 설정을 해야 한다고 합니다. 

 

 


 

본인 메일을 선택해 주세요. 

 


고급 설정을 누르면 화면이 펼쳐집니다. 

 

 


 

 


 

 

 

실행 버튼을 눌러서 실행로그가 잘 나왔으면 성공한 것입니다.  

이제 A3 셀에

   = getKOSPIIndex(A1) 라고 해보겠습니다.   

 

 

 

6월 20일은 3년 6개월만에 코스피 3000선을 돌파한 날이네요. 

 

chatGPT 통해 현재 결과값이 텍스트로 나온부분과 값이 없을 경우 공백 처리하도록 한번 더 수정했습니다.  

 

최종 결과는 아래와 같습니다. 

 

 

 


 

🎊 대성공! 여러분은 이제 진짜 데이터 마법사입니다!

와우! 정말 축하드립니다!

방금 여러분이 해낸 일이 얼마나 대단한 건지 아시나요? 단순히 A1 셀에 "20250620"이라고 입력했을 뿐인데, 한국거래소의 코스피 전체 지수가 구글시트에 자동으로 쭉~ 나타났잖아요!

여러분이 방금 성취한 것들

KRX OPEN API 정복 - 한국거래소 데이터를 직접 가져왔습니다
ChatGPT와 협업 완료 - AI와 함께 코딩에 성공했습니다
구글 앱스크립트 마스터 - 자동화 프로그램을 직접 만들었습니다
실무 도구 탄생 - 매일 사용할 수 있는 나만의 투자 도구가 생겼습니다

이제 여러분은 다릅니다!

예전에는 증권사 HTS를 켜고, 여러 사이트를 돌아다니며 지수를 하나하나 확인해야 했던 여러분... 하지만 이제는 구글시트 하나로 모든 코스피 지수를 한 번에 볼 수 있게 되었어요!

더 놀라운 건, 이 모든 것을 코딩 한 줄 직접 쓰지 않고도 해냈다는 점입니다. ChatGPT라는 AI 파트너와 함께 말이죠.

다음 편 예고: 더 놀라운 세계가 기다립니다!

하지만 여기서 끝이 아닙니다! 다음 편에서는 더욱 흥미진진한 내용들이 기다리고 있어요:

🔥 코스닥 지수도 함께 가져오기
🔥 과거 여러 날짜의 데이터를 한 번에 조회하기
🔥 차트까지 자동으로 그려주는 고급 기능
🔥 실시간 업데이트 시스템 구축하기

오늘의 성공이 시작에 불과하다는 걸 다음 편에서 확인하시게 될 거예요!

마지막 한 마디

오늘 여러분이 보여준 도전 정신과 성취력이 정말 자랑스럽습니다. 처음 해보는 일임에도 불구하고 끝까지 따라와 주셔서 감사해요.

이제 여러분도 "[AI야 놀자] 시리즈"의 진짜 주인공이 되셨습니다!

 

다음 편에서 또 만나요! 🚀

 

728x90