Loading...
Loading...
본 페이지는 사이트에 표시되는 모든 가격이 어디서 나오는지, 어떻게 비교 가능한 단위로 정규화하는지, 어떤 공식으로 프리미엄을 계산하는지, 데이터를 어떻게 캐시하는지, 상위 소스가 장애일 때 무엇이 일어나는지, 그리고 결과 수치의 한계는 무엇인지를 기술적으로 상세하게 설명합니다. 여기에는 숨겨진 것이 없습니다 — 공식과 소스 목록을 읽을 수 있다면, 동일한 결과를 직접 재현할 수 있습니다.
저희는 가능한 한 각 거래소를 직접 조회합니다. 단일 글로벌 현물에서 "현지 가격"을 파생시키면 프리미엄이 기계적으로 0이 되어 사이트의 존재 이유가 사라지기 때문입니다. 아래는 실제로 호출하는 소스 목록입니다.
파이프라인에 들어오는 모든 가격은 저장 및 프리미엄 계산 전에 USD/oz(트로이온스당 USD)로 변환됩니다. 이것이 단일 기준 단위이며, 내부적으로 대시보드와 API는 USD/oz로만 값을 처리합니다. 변환 계수는 고정 상수입니다 — 1 트로이온스 = 31.1034768g, 1kg = 1000g, 1 톨라 = 11.6638g — `src/lib/calculations/`에 정의되어 있으며 외부 소스에서 갱신되지 않습니다.
SGE Au9999가 580 CNY/g, 환율 USD/CNY = 7.20일 때
(580 / 7.20) × 31.1034768 = 80.56 × 31.1034768 ≈ 2,506.40 USD/oz
KRX 금이 105,000 KRW/g, 환율 USD/KRW = 1,360일 때
(105,000 / 1,360) × 31.1034768 ≈ 77.21 × 31.1034768 ≈ 2,401.50 USD/oz
JPX 근월물 금 12,400 JPY/g, 환율 USD/JPY = 155일 때
(12,400 / 155) × 31.1034768 = 80.00 × 31.1034768 ≈ 2,488.28 USD/oz
SGE Ag(T+D) 은이 7,800 CNY/kg, 환율 USD/CNY = 7.20일 때
7,800 ÷ 1000 = 7.80 CNY/g → (7.80 / 7.20) × 31.1034768 ≈ 1.0833 × 31.1034768 ≈ 33.70 USD/oz
비-USD 가격마다 가능한 한 같은 상위 응답에 함께 캡처된 크로스 환율을 사용합니다. 그것이 불가능한 경우(예: JPX CSV는 JPY/g만 주고 USD/JPY를 주지 않음) 파이프라인은 환율 레이어를 별도로 호출하고 결과에 단일 `fxTimestamp`를 찍습니다. `fxTimestamp`가 금속 가격 타임스탬프와 60분 이상 차이 나면 해당 환산을 동기(synchronous)가 아닌 파생(derived)으로 표기하고, 대시보드는 명시적으로 "derived" 라벨을 표시합니다.
모든 가격이 USD/oz로 정규화된 뒤, 시장 `M`의 프리미엄은 COMEX 대비 단순 백분율 차이로 계산됩니다:
양수는 현지 시장이 COMEX보다 비싸다는 의미(프리미엄)입니다. 음수는 더 싸다는 의미(디스카운트)입니다. 결과는 항상 소수점 둘째 자리까지 표시합니다. 표시 전에 평활화·평균·노이즈 제거를 하지 않습니다 — 오늘의 7.34% 프리미엄과 내일의 1.20% 프리미엄은 모두 있는 그대로 표시됩니다. 트래커에서 변동성을 숨기는 것은 트래커의 존재 이유에 반하기 때문입니다.
파이프라인은 두 가지 시계로 돌아갑니다. 매일 UTC 00:00에 Vercel cron 작업이 전체 소스의 스냅샷을 잡아 과거 차트를 구동하는 history 데이터셋에 기록합니다. 하루 동안 대시보드와 시장별 페이지는 Vercel KV(Redis) 캐시 레이어에서 응답하며, 이 캐시는 lazy하게 워밍됩니다: 특정 시간에 (market, metal) 페어에 대한 최초 사용자 요청이 상위 호출을 트리거하고, 결과는 해당 시간 동안 캐시됩니다. 이후 요청은 캐시 히트로 처리됩니다.
| 데이터 타입 | TTL |
|---|---|
| 현물 가격(Metals.dev/GoldAPI) | 15 min |
| FX 크로스 환율 | 60 min |
| SGE 호가 | 15 min (rejects sentinel values) |
| KRX 호가(T+1) | 6 hours |
| JPX 결제가 CSV | 일일, 결제 시각 발표 후 |
| 과거 스냅샷 데이터셋 | 하루 1회 기록, 덮어쓰기 없음 |
각 가격 피드는 엄격한 리졸버로 감싸져 있습니다. 리졸버는 (a) 상위 호출 성공, (b) 응답 형태가 예상 스키마와 일치, (c) 숫자값이 plausibility 체크 통과(금 > 1000 USD/oz, 은 > 10 USD/oz, -2.0 같은 sentinel 값이 아님)일 때만 값을 반환합니다. 어느 하나라도 실패하면 리졸버는 null을 반환하고, 상위 레이어가 다음 순서로 폴백을 시도합니다:
핵심 원칙: derived 값은 절대 조용히 "live"로 승격되지 않습니다. derived 값을 표시하는 경우, 페이지는 마지막 성공 읽기의 타임스탬프와 함께 그 사실을 명시합니다.
COMEX, MCX, SGE, KRX, JPX는 모두 서로 다른 휴장 캘린더를 따릅니다. 주말 조회 시 여러 피드가 직전 종가나 sentinel을 반환합니다 — 저희는 값이 실시간인 척하지 않고 타임스탬프를 노출합니다.
COMEX 한정월이 롤될 때(예: 금은 2월→4월, 은은 3월→5월) 벤치마크는 캘린더 스프레드만큼 잠깐 점프합니다. 저희는 달력 날짜가 아니라 미결제약정이 이동한 시점에 수동으로 롤하며, 변경 로그에 공지합니다.
Ag(T+D)는 CNY/kg, Au9999는 CNY/g로 호가됩니다. 저희는 USD/oz 환산 전에 은을 1000으로 나눕니다. 이 제수에 과거 버그가 있었다면 은 프리미엄이 1000배 부풀려졌을 것이며, 재발 방지를 위해 명시적으로 기록해 둡니다.
KRX는 인트라데이 호가가 아니라 직전 세션 종가를 제공합니다. KRX 카드에는 항상 "T+1" 태그와 전일 타임스탬프가 표시되며, 오늘의 COMEX 수치와 비교하는 것은 사과-오렌지 비교임을 페이지에서 경고합니다.
현재 JPX 연동은 금 결제가 CSV를 파싱합니다. JPX 은은 표시하지 않습니다 — Tocom 은 계약의 유동성이 매우 얕아 산출 프리미엄이 신호보다 노이즈에 가깝기 때문입니다.
저희가 게시하는 프리미엄은 도매·세전 비교 값입니다. 인도의 15% 수입관세와 3% GST, 영국의 은 20% 부가세, 중국 비SGE 금 13% 부가세 등 — 어느 것도 표시 프리미엄에 더해지지 않습니다. 소매가를 추론하려는 독자는 세금 비교 페이지를 참조하시기 바랍니다.
피드, 환산 계수, 또는 위의 공식에 대한 변경은 모두 방법론 변경으로 다룹니다. 변경이 릴리스되면 네 가지를 합니다: (1) 라이브 파이프라인 업데이트, (2) 같은 릴리스에서 본 페이지 업데이트, (3) 아래 변경 로그에 일자 항목 게시, (4) 변경 사항을 최근 30일 캐시 스냅샷에 재적용하여 어떤 시장에서든 영향이 0.10%를 초과하면 delta 노트를 작성. 과거 차트 데이터는 절대 조용히 재작성되지 않으며, 정정이 필요한 경우 해당 날짜에 명시적인 주석이 달립니다.
방법론은 정확하게 유지되어야만 가치가 있습니다. 피드 형태가 바뀌었거나, 세율이 옛것이거나, 한정월이 롤되었거나, 번역이 어색하다면 문의 페이지로 알려주십시오. 모든 정정 요청에 회신합니다.