자동으로 원유 가격정보를 수집하기

원자재 가격 정보는 제조업체, 금융, 운영, 구매, 투자 등 다양한 분야에서 중요한 정보입니다. 아웃코드로 이들 정보를 자동으로 수집하고 업무에 활용하는 케이스입니다.

본 예제에서는 나스닥에서 제공하는 무료 API를 활용하여 원유 가격정보를 수집해보겠습니다.

[OPEC Crude Oil Price- Daily]

1. API 인증키 발급받기

  1. Nasdaq에서는 원자재 가격 정보를 API로 무상으로 제공하고 있습니다. 회원가입을 하세요.
    https://data.nasdaq.com/sign-up (본 예제에서는 Personal 선택)
    참고로, Nasdaq 과 Nasdaq data link가 통합되었으며, 이중인증은 Google Authenticator를 선택했습니다.
  2. 가입절차를 마치고 로그인하면 아래의 홈화면이 보입니다.

  1. 아래와 같이 데이터 상품을 검색합니다. Organization of the Petroleum Exporting Countries를 선택하면 OPEC Crud Oil Price를 선택했습니다.

  1. Export Data > API > Json을 선택합니다. 팝업창에서 아래와 같은 API 주소를 확인할 수 있습니다.

https://data.nasdaq.com/api/v3/datasets/OPEC/ORB.json?api_key=인증키

2. 자동화 만들기

아웃코드 자동화 기능을 이용하여 가격정보를 불러서 자동으로 처리해보겠습니다. 먼저 Nasdaq에서 API로 보내주는 데이터 형태는 아래 왼쪽과 같습니다.

위의 데이터를 테이블 형태로 가공하여, 매일 오전에 자동으로 갱신된 값만 저장하는 데이터플로우를 만들어보겠습니다.

  1. [트리거] 나중에 아웃코드 자동화에서도 가격정보를 받아볼 수 있도록 HTTP Request로 선택합니다.
  2. [HTTP Request task] 위에서 발급받은 API 주소를 입력합니다. Method는 GET 선택합니다.
    https://data.nasdaq.com/api/v3/datasets/OPEC/ORB.json?api_key=인증키
  3. 우측의 Run 을 클릭하여 데이터를 제대로 받아오는지 확인합니다. 우측을 보면 Json 내에 Dataset으로 일자와 가격정보를 주는 것을 확인할 수 있습니다.
    이 경우 자동으로 원하는 일자와 가격정보만 처리할 수없기 때문에 간단한 스크립트를 추가해줍니다.
  4. **[Function task]**를 추가하여 HTTP Request TASK(a)에서 처리한 결과값 중에서 데이터 셋값만 반환하도록 합니다.

return a.dataset.data

  • 전체 JSON 중에서 task a가 처리한 dataset의 data들을 넘겨주라는 한줄 스크립트입니다. Nasdaq data API는 형식이 비슷하으로 메모해 두세요.
  • Function task(b)의 결과값은 아래와 같이 이쁘게 됩니다.

  1. [추가 선택] - 구글시트, 지메일, 슬랙, 팀즈, MySQL, PostgreSQL, Mongo 등으로 위의 가공된 결과데이터를 보낼 수 있습니다.

3. 자동화에서 데이터플로우 결과값 로딩하기

위에서 만든 데이터플로우의 결과값을 아웃코드 자동화로 불러보겠습니다.

  1. 데이터소스를 HTTP Request를 선택하고 위에서 만든 아웃코드 데이터플로우의 트리거주소를 입력합니다. Method는 POST 선택합니다.

https://core.outcode.biz/outcodeOp/a7994b4722f7f60027f887bb?key=(아웃코드인증키)

  1. 자동화에서 가격 데이터를 불러왔습니다. 접속할때 마다 자동으로 갱신됩니다. 필터와 칼럼 이름을 변경하여 알기 쉽게 만들어 줍니다.

  1. 마지막으로 업무무에 필요한 퀵액션과 타이머을 설정해보세요.

다음 번에는 런던 금시세 데이터를 수집해보도록 하겠습니다.