[누구나! 쉽게!] API를 이용해 코인 가격을 가져와 장부를 정리해 봅시다 (Google Sheets)

in #sct5 years ago (edited)

API 사용법

API란 쉽게 말해 정형화된 주문서라고 생각하면 됩니다.
정해진 규칙대로 주문을 하면 원하는 답을 딱 줍니다.

암호화폐 가격을 알려주는 API는 크게보면
1 각종 거래소와 2 코인마켓캡 같은 정보 포탈에서 제공하는데,
여기서는 Login이 필요 없는 곳 2군데를 이용해보겠습니다.

첫번째는 https://www.coingecko.com/en 입니다.
API 정보는 여기에 있습니다: https://www.coingecko.com/api/documentations/v3

너무 어려워 마시고, 아래 한 줄을 복사해서 웹 브라우저의 주소 적는 칸에 붙여넣고 엔터 쳐보세요
https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd

그러면 이런 정보가 나올 겁니다.
{"bitcoin":{"usd":8111.27}}

이제 저 위 줄에서 bitcoin을 ethereum으로 바꾸고, usd를 krw로 바꿔보세요.
그러면 이런 정보로 바뀌겠죠.
{"ethereum":{"krw":306836}}

코인겟코에서 가격을 제공하는 코인의 종류는 아래 한 줄을 가져가서 똑같이 해보세요
https://api.coingecko.com/api/v3/coins/list

아마 여러분이 관심없는 거의 모든 종류의 코인 정보가 나올 겁니다. 여기 나오는 정보 중에 "id"라고 되어있는 부분의 이름을 정확히 알아야 원하는 가격 정보를 가져올 수 있습니다.

장점: 온갖 먼지 코인도 거의 다 포함되어 있다
단점: 많이 쓰이는 심볼 (예 btc, ltc, ...)이 아니라 정확한 이름을 알아야 한다 (예 bitcoin, litecoin)


두번째는 https://www.cryptonator.com/ 입니다. 여기가 뭐하는 데 인지는... 사실 저도 잘 모르고요, API 정보는 여기 있습니다: https://www.cryptonator.com/api

여기서 실행해볼 한 줄은
https://api.cryptonator.com/api/ticker/btc-usd

역시 웹브라우저의 주소란에 붙여넣으면 아래와 같은 정보가 나올거에요.
{"ticker":{"base":"BTC","target":"USD","price":"8097.38280735","volume":"76261.79424595","change":"8.72946670"},"timestamp":1560395824,"success":true,"error":""}

이번에도 한 번 바꿔봅시다. btc-usd를 eth-krw로 바꿔보세요.
이렇게 나오나요?
{"ticker":{"base":"ETH","target":"KRW","price":"320169.50000000","volume":"","change":"-539.60000000"},"timestamp":1560395883,"success":true,"error":""}

참 쉽죠? ^^

이 사이트에서 제공하는 코인 목록은 다음에서 확인할 수 있습니다.
https://www.cryptonator.com/api/currencies

장점: 심볼 사용 가능하다.
단점: 코인겟코보다 코인 종류가 적다. TRTL도 없고, GRFT도 없고, Callisto도 없고...




Google Sheets로 불러오기

장부는 아무래도 마이크로소프트의 엑셀같은 Spreadsheet 프로그램을 이용하는 게 편합니다. 그리고 구글 Doc에도 비슷한 Sheets가 있죠. (여담인데, 한국 사람 백에 99명은 저 영단어 발음하면 듣는 사람은 shit으로 들을겁니다. 욕이죠 ^^)

구글시트에서 위의 api를 처리하려면 "ImportJSON" 이라는 함수를 추가해야 합니다. 위에 api 결과로 나오는, {} 괄호가 앞 뒤로 쳐진 형식을 JSON이라고 불러요. 이제 이걸 설치해 봅시다.

미디엄에 나온 이 글을 참조했어요. 간단히 소개하자면

  1. 구글 시트를 열고 상단 메뉴 중 "Tools"를 누르고 그 밑에 "Script Editor"를 누릅니다.
  2. 그러면 새 창이 열릴 거에요. 거기 중간-오른편 넓은 공간에 있는 MyFunction()은 통째로 깨끗이 지워버리고, 여기에 있는 내용을 복사해서 붙여 넣습니다.
  3. 이름을 "ImportJSON.gs"으로 바꾸고 저장합니다.
  4. 이제 원래의 구글 시트로 돌아와서 "=importjson()"이라고 쳐 봅니다. 이게 인식 되면 성공이에요.

이제 거의 다 됐습니다.
위의 코인겟코의 경우에는
=importjson("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd","/","noInherit, noTruncate")

크립토네이터의 경우에는
=importjson("https://api.cryptonator.com/api/ticker/btc-usd","/ticker/price","noInherit, noTruncate")

구글 시트의 어떤 빈칸에다가 위의 2가지 중 아무거나 복사해넣고 엔터 치면 현재 가격이 나올거에요.

자 이제 정말 마지막입니다.
여러분의 코인이 한 두개가 아닐 경우의 팁이에요.
구글 시트에서 한 줄에 관심있는 코인의 이름을 주욱 쳐 넣습니다. (코인겟코와 크립토네이터 api에서 쓰이는 이름 형식이 다르니 주의하시구요)

만약 B3 칸이 "btc"라고 한다면 크립토네이터의 명령어를 다름과 같이 바꾸면 되요.
=importjson("https://api.cryptonator.com/api/ticker/"&B3&"-usd","/ticker/price","noInherit, noTruncate")

만약 B4 칸이 "litecoin"이라면 코인겟코는 다음과 같이 바뀌어요.
=importjson("https://api.coingecko.com/api/v3/simple/price?ids="&B4&"&vs_currencies=usd","/","noInherit, noTruncate")

그러면 이제 마우스로 오른쪽 아래 꼭지점 누르고 옆으로 주~욱 가져가면 차례로 원하는 각종 코인 가격이 다 나오겠죠? 이제 나온 가격을 복사한 다음 "Paste Special - Value only"로 원하는 곳에 복사해놓고, 원하는 코인의 갯수를 기록한 다음 두 셀을 곱하면 되겠습니다. 그러면 이제 본인의 수익률이 -50%인지 -30%인지 계산이 딱 나오겠죠 ㅎㅎ

그럼 저는 이만 총총

Sort:  

저도 한번 따라해보겠습니다 :D

Posted using Partiko iOS

Google Sheets은 반응 속도가 너무 느려요.
Google Sheets으로 등록 관리를 한다면 Google Sheets 자체에서 하시면 안되고 자바스크립트 같은 외부에서 데이터를 추출하여 Google Sheets로 데이터를 보내는 방식으로 관리하여 Google Sheets를 서버로 활용하는 식으로 관리하면 괜찮을 거에요.
실시간 데이터를 Google Sheets에서 하면 반응이 진짜 느려서 낭패 봄

맞아요 느리죠. 그래서 실시간 데이타가 필요하신 분께는 비추입니다. 그래도 저처럼 가끔 재고조사(?)하는 용도로는 문제 없습니다 ^^

zorba님이 dj-on-steem님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
zorba님의 [2019/6/12] 가장 빠른 해외 소식! 해외 스티미언 소모임 회원들의 글을 소개해드립니다.

...enerva 뉴욕 dj-on-steem/td> DC 근교 hello-sunshine DC