Google Sheets API에 실시간 외환 시세 스트리밍하는 방법: 완벽 가이드

발행: (2026년 5월 23일 PM 05:26 GMT+9)
12 분 소요
원문: Dev.to

Source: Dev.to

목차

  • 빠른 답변: Google Sheets API에 실시간 외환 시세 스트리밍하기
  • 실시간 외환 시세를 Google Sheets API에 스트리밍하는 것이 생각보다 어려운 이유
  • 단계별 접근법
  • Google Sheets에 실시간 외환을 스트리밍하기 위한 도구
  • Google Sheets에서 외환 API를 사용할 때 피해야 할 흔한 실수
  • RealMarketAPI에서 이 문제를 해결하는 방법
  • 언제 Google Sheets용 전용 외환 API 사용을 시작해야 하는가
  • 자주 묻는 질문

Google Sheets에 실시간 외환 시세를 스트리밍하려면, 전용 시장 데이터 제공자를 Google Apps Script와 연결하거나, 작은 서버를 통해 WebSocket 피드를 중계하면 됩니다. 이렇게 하면 스프레드시트가 직접 제어하는 일정에 따라 최신 시세를 끌어오게 되며, 기본 제공 함수가 할 수 있는 수준을 훨씬 넘어섭니다.

진정한 무료 티어와 낮은 지연 시간을 제공하는 공급자를 선택하세요. RealMarketAPI는 하나의 옵션입니다. 이 서비스는 REST, WebSocket, 혹은 텔레그램 봇을 통해 실시간 금, 외환, 암호화폐, 주식 가격을 제공하며, 무료 플랜은 신용카드 없이도 바로 키를 발급받을 수 있습니다. 키 발급은 1분 이내에 완료됩니다.

올바른 API가 뒤에 있으면, 시트는 거의 실시간에 가깝게 통화 쌍을 추적하고, 실시간 대시보드에 데이터를 공급하거나, 특정 수준이 깨질 때 알림을 보낼 수 있습니다. 작동 여부를 결정하는 두 가지 요소는 지연 시간가동 시간이며, 이는 일반적인 무료 피드가 가장 약한 부분입니다.

Google Sheets에는 기본적으로 GOOGLEFINANCE 함수가 포함되어 있어 일부 통화 쌍을 바로 사용할 수 있습니다. 하지만 이 함수는 약 20분마다 한 번씩만 새로 고침하고, 많은 쌍을 건너뛰며, 과거 데이터는 제공하지 않습니다.

보다 빠른 방법은 타이머가 설정된 Google Apps Script에서 REST 엔드포인트를 호출하는 것입니다. 스크립트가 JSON을 받아 파싱하고, 값을 셀에 바로 기록합니다. 이것이 대부분의 개발자가 선택하는 패턴입니다.

진정한 스트리밍을 원한다면 WebSocket 피드가 발생 즉시 틱을 푸시합니다. 시트 자체가 소켓을 유지할 수 없으므로, 작은 중간 레이어를 통해 스트림을 라우팅해야 합니다. 아래에서 자세히 다룹니다.

외환 데이터를 스프레드시트에 넣는 일은 겉보기엔 간단해 보이지만, 마찰이 빠르게 나타납니다.

  • 대부분의 무료 피드는 15초 이상 지연됩니다.
  • 많은 서비스가 분당 호출 횟수를 제한하고, 하루에 25회 호출 제한을 두는데(예: Alpha Vantage 무료 티어), 이는 지속적인 스트리밍을 불가능하게 합니다.
  • Google Sheets 자체에도 한도가 있습니다. 사용자 정의 함수와 Apps Script 트리거는 같은 할당량을 공유하며, 단일 스크립트 실행은 6분으로 제한됩니다. API를 과도하게 호출하면 실행이 중간에 중단돼 시트가 절반만 채워지는 상황이 발생합니다.

GOOGLEFINANCE는 주식과 주요 통화 쌍에 유용하지만, 모든 상품을 다루지는 않으며, 데이터가 최대 20분까지 지연될 수 있다고 Google도 명시하고 있습니다. 공식 GOOGLEFINANCE 문서에는 지원되는 속성이 자세히 나와 있습니다.

또한 이 함수는 단일 가격만 반환하고, 매도·매수 호가, 과거 OHLC, 기술 지표 등을 제공하지 않으므로, 스프레드 추적이나 백테스트를 하는 사람에게는 한계가 있습니다.

무료 API는 종종 2차 제공업체로부터 데이터를 재판매합니다. “fetch‑then‑cache” 사이클이 몇 초, 때로는 몇 분의 지연을 은밀히 추가해 숫자가 도착하기까지 시간을 늘립니다.

또한 변동성이 큰 시기에 급격히 속도를 제한하는 경우가 많아, 가장 최신 견적이 필요할 때 데이터가 끊기는 결과를 초래합니다.

외환 API와 Google Sheets를 연결하는 신뢰할 수 있는 방법은 네 단계로 구성됩니다.

  1. 진정한 무료 티어, 낮은 지연 시간, 넓은 통화 쌍 커버리지를 제공하는 공급자를 찾는다. 몇 분마다 업데이트되는 서비스는 피한다.
  2. RealMarketAPI 무료 플랜은 150ms 미만의 지연 시간으로 6개의 핵심 심볼(금, 은, 비트코인, 이더리움, EUR/USD, Google)을 월 5,000회 호출 제한으로 제공한다. 유료 플랜은 외환, 암호화폐, 주식, 원자재 등 60개 이상의 상품을 지원한다. 가격 페이지에 각 티어가 명시돼 있으며, 무료 플랜은 신용카드가 필요 없다.
  3. Apps Script는 시트와 어떤 REST 엔드포인트든 연결해 주는 다리 역할을 한다. 공식 Apps Script 문서에 기본 흐름이 정리돼 있으며, 최소 흐름은 다음과 같다:
    • Extensions → Apps Script를 열고 새 스크립트를 만든다.
    • UrlFetchApp.fetch() 로 API 엔드포인트와 키를 호출한다.
    • JSON을 파싱하고 getRange().setValues() 로 셀에 기록한다.
    • 트리거가 실행될 수 있도록 함수를 저장한다.
      우리 API 문서에는 정확한 엔드포인트 구조와 응답 형식이 나와 있다.
  4. 시간 기반 트리거를 설정해 함수를 일정에 따라 실행한다. 1분 타이머를 사용하면 손으로 시트를 건드리지 않아도 거의 실시간에 가까운 새로 고침이 가능하다.

주의: 6분 실행 제한을 염두에 두자. 여러 통화 쌍을 한 번에 가져와야 한다면, 트리거를 여러 개로 나누거나 요청을 배치해 단일 실행이 제한 이하로 유지되게 한다.

모든 API는 호출 속도를 제한한다. 스크립트는 HTTP 상태 코드를 확인하고, 재시도하기 전에 백오프(back‑off) 해야 한다. 우리 API는 Retry-After 헤더와 명확한 오류 코드를 반환하므로, 잘 작성된 스크립트는 정확히 얼마나 대기해야 하는지 알 수 있고, 데이터에 빈틈이 생기지 않는다.

세 가지 주요 API 비교

FeatureFinnhubAlpha VantageRealMarketAPI
Free planYesYesYes (no credit card)
Free tier freshnessReal-time (US stocks)Delayed 15‑20 minSub‑150 ms (live)
WebSocketYes (stocks, currencies)NoYes (Plus 플랜 이상)
Historical dataPlan dependent20+ years (daily)Up to 10 years (Business)
Technical indicatorsNo50+ indicatorsIndicators API (Pro 이상)
Telegram BotNoNoYes
ProviderFree tier request limitInstruments on free tierFree tier data freshness
Finnhub60 calls per minuteStocks, forex, cryptoReal-time (US stocks)
Alpha Vantage25 requests per dayStocks, forex, commoditiesDelayed 15‑20 min
RealMarketAPI5,000 requests per month6 core symbolsSub‑150 ms (live)

세 서비스 모두 무료 티어를 제공하지만, 스트리밍 방식이 다릅니다. Finnhub는 무료 플랜에 WebSocket을 포함해 주식·통화를 지원하고, Alpha Vantage는 어느 티어에서도 WebSocket을 제공하지 않으며, RealMarketAPI는 무료 플랜이 REST‑only이며 월 5,000회 호출 제한이 있다가 Plus 플랜($14.99/월)부터 WebSocket 스트리밍을 해제합니다. 전체 기능 비교는 RealMarketAPI vs FinnhubRealMarketAPI vs Alpha Vantage 비교 페이지를 참고하세요.

피할 수 있는 흔한 실수

  • 무료 API 조건이 자주 바뀐다: 커버리지가 줄어들고 제한이 강화되며, 시트가 업데이트를 멈추는 순간에야 문제를 알게 된다.
  • 의도적인 지연 삽입: 취미용 트래커에는 괜찮지만, 자동 신호와 같이 시간에 민감한 작업에는 전혀 쓸모가 없다.
  • 10초마다 API 호출: 실제로는 스크립트 실행 시간과 Google Sheets가 부과하는 URL fetch 할당량을 빠르게 소진한다.
  • 스크립트 초과 실행: 실행이 중단되면 오류 없이 오래된 숫자만 남는다.
  • 중간 가격만 반환: 실제 거래나 리스크 관리에는 매
0 조회
Back to Blog

관련 글

더 보기 »

내 스킬

프로젝트를 위한 AI 지시문을 만들고, 설치하고, 관리하세요 — 코딩이 필요 없습니다. CREATE 이름을 정하고, 카테고리를 선택하고, 원하는 것을 설명하세요 — 마법사가 자동으로 구성합니다.