Guide/ECB 기준환율

ECB 기준환율 설명

유럽중앙은행(ECB)은 영업일마다 공식 외환 기준환율을 하나씩 발표합니다. 이것이 무엇을 의미하는지, 실시간 현물 데이터와 어떻게 다른지, API에서 어떻게 읽는지 설명합니다.

ERexchangerate.dev·Jun 19, 2026·6분 읽기

/v1/latest/USD를 호출해 source: ecb_daily를 받았다면, 유럽중앙은행의 유로 외환 기준환율을 보고 있는 것입니다. 영업일마다 약 16:00 CET에 한 번 발표되며, 참고와 정보 제공용이지 거래용이 아닙니다. EUR 통화쌍에 대해 가장 권위 있는 일일 환율 수치이지만 하나의 스냅샷일 뿐입니다 — 16:00 CET 이후에도 시장은 계속 움직이지만, 이 고시가는 다음 영업일까지 갱신되지 않습니다.

Key points
ECB는 영업일마다 약 16:00 CET에 유로 기준환율을 발표합니다.
API는 이를 source: ecb_daily로 노출하며, live(집계된 현물 환율), fred_daily(연준 일일 시계열)와 구분됩니다.
주말과 공휴일에는 새로운 ECB 고시가가 발표되지 않습니다. 해당 날짜의 과거 응답에는 is_forward_filled: true가 붙습니다.
모든 환율은 인디케이티브 값이며, 참고와 분석용일 뿐 정산이나 딜링용이 아닙니다.
ECB EXR 시계열이 시작된 1999년까지 이력이 거슬러 올라갑니다.

ECB 기준환율이란 무엇인가

영업일마다 유럽중앙은행은 일련의 유로 외환 기준환율을 발표합니다. 이 값은 유럽중앙은행제도 안팎의 중앙은행들과의 협의 절차를 거쳐 약 16:00 CET에 산출됩니다. 이 환율은 그 시점의 컨센서스 중간시장 수치를 나타내며, ECB 자체 문서에서 명시하듯 정보 제공과 참고용으로만 쓰입니다.

이 환율은 공공기관에서 나오고 고정되고 투명한 일정에 따라 발표되기 때문에, EU 전역의 금융 계약, 회계, 규제 보고에 널리 쓰입니다. API 응답에서 source: ecb_daily를 보았다면 바로 이 값을 읽고 있는 것입니다.

인디케이티브 값, 정산용 아님
ECB 기준환율은 딜링 환율이 아닙니다. 특정 시점의 시장 컨센서스를 반영할 뿐입니다. ECB 출처 환율을 담은 모든 /v1/latest 응답에는 이를 확인하는 notice 필드가 포함되어 있습니다: "Indicative rates, not for settlement. Source: incl. ECB statistics."

세 가지 데이터 출처 분류

API의 모든 응답에는 환율이 어떤 데이터 분류에서 왔는지 알려주는 source 필드가 있습니다. 세 가지가 있습니다:

source 값ecb_dailylive
제공기관유럽중앙은행집계된 현물 컨센서스
빈도영업일마다 1회장중(~60초), 거래 주간
발표 시점평일 약 16:00 CET거래 주간 내내
고시 사이 기간이전 고시가 유지됨; 시장 움직임 미반영거래 주간 내내 계속 갱신
주말/공휴일새 고시 없음; 이전 값 유지은행 간 시장 휴장; 마지막 컨센서스 유지
이용 가능한 이력1999년까지최근 구간
적합한 용도회계, 보고, 감사 추적실시간 표시, 가격 책정

세 번째 분류인 fred_daily는 미국 연방준비제도의 일일 시계열에서 나오며, 연준이 자체 기준수치를 발표하는 USD 통화쌍에 가장 관련이 있습니다. ecb_daily와 비슷한 주기를 따릅니다: 영업일마다 1회이며, 미국 공휴일에는 발표가 비어 있습니다.

ECB 출처 응답 읽기

기준 통화를 지정해 최신 환율을 요청하고 source를 확인하면 무엇을 보고 있는지 알 수 있습니다:

bash · latest rates, EUR basecopy
curl -s https://api.exchangerate.dev/v1/latest/EUR
json · response excerptcopy
{
  "result": "success",
  "base": "EUR",
  "source": "ecb_daily",
  "market_session": "open",
  "timestamp": "2026-06-19T14:05:33Z",
  "data_updated_at": "2026-06-19T14:00:00Z",
  "rates": {
    "USD": 1.14235,
    "GBP": 0.86781,
    "JPY": 184.320
  },
  "notice": "Indicative rates, not for settlement. Source: incl. ECB statistics."
}

모든 응답에는 두 개의 타임스탬프 필드가 있습니다. data_updated_at은 원본 환율이 데이터 저장소에 마지막으로 기록된 시점입니다. ecb_daily의 경우 가장 최근 영업일의 약 16:00 CET가 됩니다. timestamp는 API가 응답을 생성한 시점입니다. 응답을 캐시한다면, 신선도를 추적할 필드는 data_updated_at입니다.

첫 번째 요청은 키 없이도 작동합니다. 호출이 예약된 작업이나 애플리케이션으로 옮겨가면, 무료 키를 만들어 계정별 할당량을 확보하고 서버에 보관하세요.

고시 사이, 주말, 순방향 채움(forward-fill)

ECB 고시가는 하루에 한 번뿐인 스냅샷입니다. 약 16:00 CET 발표와 다음 영업일 고시 사이에는 ecb_daily 데이터가 갱신되지 않습니다 — 장중이나 야간의 시장 움직임은 반영되지 않습니다. ECB는 주말이나 공휴일에도 발표하지 않으므로, 토요일이나 일요일에 요청하면 금요일 고시가가 반환됩니다. API는 발표가 없는 날짜를 is_forward_filled 필드로 처리합니다:

bash · historical date on a weekendcopy
curl -s https://api.exchangerate.dev/v1/2026-06-13/USD \
  -H "Authorization: Bearer exr_live_..."
json · forward-filled responsecopy
{
  "result": "success",
  "base": "USD",
  "source": "fred_daily",
  "market_session": "weekend",
  "is_forward_filled": true,
  "rates": {
    "EUR": 0.87531,
    "GBP": 0.75945,
    "JPY": 161.412
  }
}

is_forward_filledtrue이면, 응답의 환율은 이전 영업일에서 이월된 마지막 발표값입니다. 새로운 관측값이 아닙니다. 주말에 환율을 표시하거나 차트를 채우는 등 많은 경우에는 이 정도로 충분합니다. 특정 날짜에 실제로 고시가 존재했는지 기록해야 하는 회계나 감사 추적에서는 이 플래그를 확인해야 합니다.

실시간 환율은 고시 사이 장중에도 갱신됩니다
live 출처는 거래 주간 내내 약 60초마다 갱신됩니다 — ECB의 일일 고시 사이와 야간을 포함해서입니다. 어제 16:00 CET 시점이 아니라 지금 시장이 어디에 있는지 반영하는 환율이 필요하다면, 응답에 source: live가 있는지 확인하세요.

Python에서 source 확인하기

흔한 패턴은 환율을 읽고 source로 분기해 표시 방식을 결정하는 것입니다:

python · source-aware rate fetchcopy
import requests

API = "https://api.exchangerate.dev/v1"
KEY = "exr_live_..."

resp = requests.get(
    f"{API}/latest/USD",
    headers={"Authorization": f"Bearer {KEY}"},
    timeout=10,
)
resp.raise_for_status()
data = resp.json()

rate = data["rates"]["EUR"]        # 0.87531
source = data["source"]            # ecb_daily
session = data["market_session"]   # open

if source == "ecb_daily":
    print(f"ECB reference rate as of last business day: {rate}")
elif source == "live":
    print(f"Indicative spot rate ({session}): {rate}")
else:
    print(f"Rate ({source}): {rate}")

1999년까지의 이력

ECB는 유로가 도입되면서 EXR 시계열을 시작했습니다. API는 날짜 지정 엔드포인트 /v1/{date}/{base}와 범위 엔드포인트 /v1/range를 통해 전체 이력을 노출합니다. 두 엔드포인트 모두 해당하는 경우 is_forward_filled를 반환합니다. 원하는 기간 동안 특정 통화쌍의 시계열을 가져올 수 있습니다:

bash · weekly EUR/USD seriescopy
curl -s "https://api.exchangerate.dev/v1/range?base=EUR&symbols=USD&start_date=2026-06-10&end_date=2026-06-16" \
  -H "Authorization: Bearer exr_live_..."

매개변수 이름에 유의하세요: start_dateend_date(스네이크 케이스), 그리고 쉼표로 구분된 문자열인 symbols입니다. 범위 응답은 발표된 영업일마다 한 행을 반환하며, 각 행에는 고유한 sourceis_forward_filled가 있습니다. 주말 날짜는 행으로 포함되지 않습니다.

ECB 고시가는 영업일마다 하나의 관측값입니다. 실시간 현물, 순방향 채움, 삼각 교차환율은 모두 이 기준점을 둘러싼 맥락일 뿐입니다.

실시간 응답에서 두 필드를 함께 확인하세요
요청 한 번, 키는 필요 없습니다: /v1/latest/USD를 사용해보고 실제 응답에서 sourcemarket_session을 읽어보세요. 이력과 자신만의 할당량이 필요하다면, 무료 키는 월 10,000회이며 카드가 필요 없습니다.
ER
exchangerate.dev
인디케이티브 환율로 개발하는 개발자를 위한 FX 데이터 가이드.

Keep reading

Referencesource와 market_session 읽기Read BlogECB 기반 FX API가 고시 사이에 놓치는 것Read Guide인디케이티브 환율과 체결 가능 환율Read
더 많은 비교Fixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
학습Reading source and market_session in your pipelineIndicative vs executable FX rates: what a rates API actually gives you
실시간 환율EUR/USDGBP/USDUSD/JPY