API로 국제 금가격 수집하기
코드없이 쉽게 금융 데이터를 수집하는 방법
Last updated
코드없이 쉽게 금융 데이터를 수집하는 방법
Last updated
원자재 가격 정보는 제조업체, 금융, 운영, 구매, 투자 등 다양한 분야에서 중요한 정보입니다. 아웃코드로 이들 정보를 자동으로 수집하고 업무에 활용하는 케이스입니다.
본 예제에서는 나스닥에서 제공하는 무료 API를 활용하여 국제 금 시세 정보를 자동으로 수집해보겠습니다.
[Gold Price: London fixing- Daily]
Nasdaq에서는 원자재 가격 정보를 API로 무상으로 제공하고 있습니다. 회원가입을 하세요. https://data.nasdaq.com/sign-up (본 예제에서는 Personal 선택) 참고로, Nasdaq 과 Nasdaq data link가 통합되었으며, 이중인증은 Google Authenticator를 선택했습니다.
가입절차를 마치고 로그인하면 아래의 홈화면이 보입니다.
아래와 같이 데이터 상품을 검색합니다. 본 예제에서는 런던 금 데이터(무료)를 수집합니다. (참고로, 현재 국제 금 시세의 표준이 되는 금 가격은 글로벌 은행들로 구성된 LGMF(London Gold Market Fixing Ltd)가 산출하여 런던귀금속시장협회(London Bullion Market Association)이 고시하고 있습니다.
Export Data > API > Json을 선택합니다. 팝업창에서 아래와 같은 API 주소를 확인할 수 있습니다.
https://data.nasdaq.com/api/v3/datasets/LBMA/GOLD.json?api_key=인증키
아웃코드 자동화 기능을 이용하여 가격정보를 불러서 자동으로 처리해보겠습니다.
먼저 Nasdaq에서 API로 보내주는 데이터 형태는 아래 왼쪽과 같습니다.
위의 데이터를 테이블 형태로 가공하여, 매일 오전에 자동으로 갱신된 값만 저장하는 데이터플로우를 만들어보겠습니다.
[트리거] 나중에 아웃코드 자동화에서도 가격정보를 받아볼 수 있도록 HTTP Request로 선택합니다.
[HTTP Request task] 위에서 발급받은 API 주소를 입력합니다. Method는 GET 선택합니다. https://data.nasdaq.com/api/v3/datasets/OPEC/ORB.json?api_key=인증키
우측의 Run 을 클릭하여 데이터를 제대로 받아오는지 확인합니다. 우측을 보면 Json 내에 Dataset으로 일자와 가격정보를 주는 것을 확인할 수 있습니다. 이 경우 자동으로 원하는 일자와 가격정보만 처리할 수없기 때문에 간단한 스크립트를 추가해줍니다.
[Function task]를 추가하여 HTTP Request TASK(a)에서 처리한 결과값 중에서 데이터 셋값만 반환하도록 합니다.
전체 JSON 중에서 task a가 처리한 dataset의 data들을 넘겨주라는 한줄 스크립트입니다. Nasdaq data API는 형식이 비슷하으로 메모해 두세요.
Function task(b)의 결과값은 아래와 같이 이쁘게 됩니다.
[추가 선택] - 구글시트, 지메일, 슬랙, 팀즈, MySQL, PostgreSQL, Mongo 등으로 위의 가공된 (전체) 결과데이터를 보낼 수 있습니다.
위에서 만든 데이터플로우의 실행 데이터를 아웃코드 자동화로 불러보겠습니다.
데이터소스를 HTTP Request를 선택하고 위에서 만든 아웃코드 데이터플로우의 트리거 URL 주소를 입력합니다. Method는 POST 선택합니다.
https://core.outcode.biz/outcodeOp/a0000000000b?key=(아웃코드인증키) //예시입니다.
자동화에서 가격 데이터를 불러왔습니다. 접속할때 마다 자동으로 갱신됩니다. 필터와 칼럼 이름을 변경하여 알기 쉽게 만들어 줍니다. 불러온 데이터에서 오늘 데이터만 필터링하려면, 먼저 칼럼의 포맷을 DATETIME으로 변환하고 필터에서 today를 선택하세요.
완성되었습니다. 이제 자동화를 열때마다 최신의 데이터를 가지고 옵니다. 자동으로 구글시트, 슬랙 , 이메일, 카카오톡으로 보내고 싶으시면 퀵액션을 추가해보세요. 수집된 결과는 다음과 같이 보여집니다.