실시간 금 가격 차트는 어떻게 작동할까?
실시간 금 가격 차트가 현물 호가, OHLC 바, UTC 타임스탬프, 제어된 폴링을 결합하는 방식을 TypeScript와 SVG 예제로 알아봅니다.
읽기 →Reddit에서 반복해서 나오는 금 가격 API 질문에 직접 답한다. 무료 등급, 갱신 주기, 속도 제한, 인증, 숫자의 출처, 상업적 이용, 그리고 그 위에 무언가를 만들어도 될 만큼 괜찮은지까지.
Reddit에서 금 가격 API를 검색하면 스레드는 거의 항상 같은 모양이다. 누군가 대시보드나 가격 알림, 트레이딩 봇, 또는 지금(地金) 가격을 표시하는 스토어프론트를 만들고 있고, 코드에서 바로 가져다 쓸 수 있는 실시간 금 가격을 원한다. 무엇이든 연결하기 전에, 이들은 r/algotrading, r/webdev, r/golang에서 매번 같은 몇 가지 질문을 던진다. 무료 등급이 있는가, 숫자는 얼마나 최신인가, 한도는 얼마인가, 상업적으로 써도 되는가, 그 데이터를 신뢰할 수 있는가.
이 글은 goldprice.dev를 실제 예시로 삼아 그 질문들에 직접 답한다. 읽는 데 가입은 필요 없고, 아래 첫 번째 API 호출도 키 없이 실행된다.
개발자를 위한 원자재 가격 API다. https://api.goldprice.dev의 단일 인증 REST 엔드포인트로 금, 은, 구리를 제공한다. 모든 응답에는 교차 검증된 데이터 신선도 플래그가 실려 있고, ?include=로 소스별 가격과 타임스탬프, 혹은 괴리 수치를 요청할 수 있으므로, 코드가 조용히 실패하는 대신 특정 업스트림이 지연되고 있음을 알아챌 수 있다. MCP 서버는 무료 등급을 포함한 모든 플랜에 포함되어 있다.
이것은 증권사도, 결제 피드도 아니다. 여기 나오는 가격은 표시, 분석, 알림을 위해 공개되는 참고용 지표다. 거래를 결제할 실행 가능한 딜링 호가가 필요하다면, 공개된 금 가격 API 중 그 어느 것도(이 API를 포함해) 맞는 도구가 아니다.
있고, 카드 등록도 필요 없다. 무료 플랜은 실시간 금(XAU) 현물 가격을 대상으로 월 1,000회 호출, 분당 30회 요청을 제공한다. 유료 플랜은 은과 구리, 선물 결제 데이터, 더 높은 한도, 상업적 권리를 추가한다.
| 플랜 | 가격 | 월 호출 횟수 | 추가되는 것 |
|---|---|---|---|
| Free | $0 | 1,000 | XAU 현물, MCP, 카드 불필요 |
| Physical | $10/월 | 20,000 | + 금 선물, 국가별 딜러 가격 |
| Pro | $30/월 | 100,000 | + 은, 구리, 30년 일간 이력, 상업적 이용 |
| Realtime Pro | $80/월 | 1,000,000 | + XAU/XAG WebSocket 틱 스트림과 physical 채널 |
실시간 현물 가격은 하루에 한 번 찍히는 스냅샷이 아니라 계속 갱신되는 오라클이다. 선물 결제값은 거래소의 결제 스케줄에 맞춰 갱신된다. 이 API의 핵심은 지금 보고 있는 값이 어느 쪽인지 절대 추측할 필요가 없다는 데 있다. 모든 응답에는 computed_at이 실리고, 값이 예상 갱신 주기보다 오래되면 is_stale이 설정되며, 필요하면 ?include=sources로 소스별 타임스탬프까지 분해해 볼 수 있다. 신선도는 뭉뚱그린 "실시간" 라벨을 믿는 대신 페이로드에서 직접 읽는다.
Free는 분당 30회 요청이고, 유료 플랜은 각각 120회와 500회다. 모든 응답은 표준 X-RateLimit-Remaining 헤더를 함께 반환하므로, 올바른 패턴은 무작정 폴링하다 429를 맞는 것이 아니라 이 헤더를 읽고 잔여량이 적을 때 속도를 늦추는 것이다. 대부분의 앱에서는 실제로 값이 움직이는 빈도에 맞춘 짧은 클라이언트 캐시만으로도 무료 등급 안에 넉넉히 머물 수 있다.
베어러 토큰이다. 키는 ga_live_로 시작하며 Authorization 헤더에 넣는다. IP당 시간당 100회로 제한된 익명 접근도 있는데, 가입 전에 테스트해볼 수 있도록 인증된 호출과 동일한 간소한 기본 응답(가격, 매수호가, 매도호가, 신선도 필드)을 반환한다. 인증한다고 해서 이 기본값이 바뀌지는 않지만, 시가·고가·저가·전일 종가·변동폭·소스 간 괴리 필드를 담은 ?include=stats가 열린다. ?include=sources와 ?include=karat는 인증 여부와 관계없이 사용할 수 있다.
볼 수 있고, 이 부분이야말로 대부분의 API가 감추는 지점이다. ?include=sources를 붙이면 응답에 sources[] 배열이 포함되는데, 업스트림마다 한 행씩, 각각 자체 가격과 타임스탬프를 갖는다. 소스 간에 의견이 갈릴 때는 ?include=stats(인증 필요)에 divergence_bps와 divergence_flag가 실리므로, 출처를 알 수 없는 단일 혼합값을 그냥 믿는 대신 스스로 허용 오차를 정할 수 있다. 잘못된 가격에 비용이 따르는 무언가를 만들고 있다면, 이 가시성이야말로 웹페이지를 스크래핑하는 대신 구조화된 API를 쓰는 이유다.
무료와 Physical 등급은 개인 사용 및 평가용이다. 상업적 이용, 즉 자신이 출시하는 제품에 가격을 다시 표시하는 것은 Pro 플랜부터 가능하며 출처 표기가 필요하다. 자신의 사용자에게 금 가격을 보여줄 생각이라면 Pro가 최소 기준이다.
쓸 수 있다. MCP 서버는 무료 등급을 포함한 모든 플랜에 들어 있다. Claude, Cursor, 또는 MCP를 지원하는 어떤 런타임에든 설정 블록 하나만 추가하면 에이전트가 도구 코드를 손으로 짜지 않고도 실시간 가격을 바로 가져온다. 데이터는 REST API가 제공하는 것과 동일하다. 설정 세부사항이 필요하면 전체 MCP 안내를 참고하라.
키도, 의존성도 없이:
curl https://api.goldprice.dev/v1/prices?symbol=XAU-USD-SPOT
가격, 매수호가, 매도호가, 신선도 플래그가 담긴 JSON을 돌려받는다. 이 한 번의 호출만으로도 무엇을 만들든 실시간의 정직한 금 가격을 집어넣기에 충분하다. 캐럿별 그램당 내역이 필요하면 ?include=karat을, 기여한 소스가 필요하면 ?include=sources를 붙인다. 전체 응답 구조와 더 높은 한도가 필요할 때는 무료 키 발급이 1분이면 끝난다.
언어별 안내가 필요하다면, JavaScript로 실시간 금 가격 가져오기에서 REST 경로를 처음부터 끝까지 다루고, 금 가격 캐싱과 속도 제한 안에 머물기에서 대량 트래픽에서 그렇게 하는 방법을 다룬다.
관련 가이드
실시간 금 가격 차트가 현물 호가, OHLC 바, UTC 타임스탬프, 제어된 폴링을 결합하는 방식을 TypeScript와 SVG 예제로 알아봅니다.
읽기 →확정된 XAU/USD 일별 바(bar)와 과거 환율 관측치를 결합해, 당시에는 알 수 없었던 환율을 실수로 사용하지 않고 현지 통화로 금 전략을 테스트한다.
읽기 →iframe 하나로 WordPress에 무료로 설정 가능한 실시간 금 시세 위젯을 추가한다. Gutenberg와 Elementor에서 모두 작동하며, API 키도 플러그인도 필요 없다.
읽기 →goldprice.dev
실시간 금 시세, 과거 OHLC 데이터, 다중 소스 집계 — REST 및 SSE로 제공됩니다.