본문 바로가기
IT 종사자로서 떠들기/크립토 종사자로서 기록

구글 스프레드시트로 거래소 일종가 데이터 가져오기

by Cyprus 2024. 3. 3.

구글 스프레드시트에 스크립트를 사용할 수 있다는 것은 예전부터 가끔 들었지만 실제로 실행을 해볼 생각을 못했다. 얼핏 지나가면서 봤을 때 자바 스크립트와 문법이 비슷해보이는데, 좋아하지 않는 문법이라서 더 그렇기도 했다. 제일 배우기 싫은 외국어야... 점도 많이 찍어야 하고 괄호도 괴상하게 많은 등등. 

 

그러다가, 챗GPT에게 시키면 된다는 사실을 깨달았다. 

 

간단하게 몇 가지 샘플로, API 엔드포인트를 주고 그 결과값을 스프레드시트에 작성하라는 명령을 줘보니, 잘 작동한다. 

 

1. 에디터  : 확장프로그램 -> App Script 를 누르면 간단한 에디터가 등장. 

있어야 할 필수 기능은 다 있다.  

  -> 탭이 표시되는 편집창 

  -> 실행 기능 

  -> 디버깅 기능 (디버깅포인트에서 변수값 확인 가능) 

  -> 콘솔창 

사실 초보 프로그래머 입장에서는 제대로된 에디터에서도 이 이상의 기능을 별로 안 써본 것 같다 -_ -

 

 

 

 

2. 코딩 : 챗GPT에게 다 맡기고 오류 수정 정도만 직접... 

원래라면 문법을 찾아가며 코딩하는데만 하루나 이틀을 통째로 써야했겠지만. 직접 코딩한 것은 한 줄도 없다. 다만 원하지 않는 결과가 나올 때, 또는 API Spec에서 파라미터 한두개가 빠졌을 때... 등등을 봐가면서 조금씩 고친 정도다. 

 

명령을 주고 제대로 작동한 케이스들은 다음과 같다. 

 

1) API를 호출해서 날짜별로 조회한 데이터를 구글 스프레드시트에 넣을 수 있는 구글 스프레드시트 스크립트를 작성해줘

 

2) API 엔드포인트 명칭은 'https://api.upbit.com/v1/BTC' 이고, 필수 파라미터인 markets 는 KRW-BTC로 정의해줘

 

3) 웹에서 찾아낸 파이썬코드를 넣고, 구글 앱스크립트로 문법을 변경해줘

 

4) 날짜를 시작일부터 종료일까지 루프로 돌면서 변경하도록 해줘  

 

5) 이 Response 구조에 맞춰서 코드를 수정해줘  

 

RESPONSE BODY

  result - string

  error_code - string

  is_last - boolean

  chart - array of objects

    object

    timestamp - integer

    open - string

    high - string

    low - string

    close - string

    target_volume - string

    quote_volume - string

 

이 5번의 작동이 되는 것이 너무 인상적이었다.  (업비트에 맞도록 코드를 만들어두고, 코인원의 API에서 작동하는 함수를 하나 더 만드는데 Response 구조가 조금 다르길래, 그냥 혹시나 해서 Response body 를 스페이스로 비워가며 넣었는데 정상 작동되는 코드가 수정되어 나왔다. 

 

 

3. 배포 

에디터 상에서는 배포를 하지 않아도 변경된 코드가 그때그때 작동된다. 하지만 스프레드시트에 걸어놓은 메뉴에서 실행시키기 위해서는 반드시 배포를 해야 한다. 재밌는 것이 웹앱 배포 이외에 구글 클라우드로의 배포가 지원된다. 이건 환경설정이 좀 필요할 것 같아서 안 하기로... 

 

반응형