신흥국 경제 지표로 인플레이션, 정책금리, 성장률 비교하기

신흥국은 제공 범위가 고르지 않아, 비교하려면 먼저 커버리지를 확인해야 합니다. Narwhal은 인도네시아와 브라질의 월별 인플레이션, 정책금리, GDP 성장률을 반환하고, 월별 경로에 데이터가 없는 나라에는 World Bank 연간 계열을 반환합니다.

신흥국 한 곳의 인플레이션 요청하기

curl, 인도네시아 인플레이션
curl -s "https://api.narwhalapi.com/v1/economics/IDN/inflation" \
  -H "Authorization: Bearer $NARWHAL_API_KEY"
응답
{
  "country": "IDN",
  "period": "2026-09",
  "year_over_year": "3.28",
  "month_over_month": "0.3",
  "released_on": "2026-10-29",
  "source": {
    "publisher": "Statistics Indonesia (BPS)",
    "distributor": "OECD"
  }
}

year_over_year와 month_over_month는 퍼센트이고, period는 해당 월, released_on은 발표일입니다. 통계 기관을 알 수 있는 경우 source에 발표 기관과 배포 기관이 들어갑니다. 정책금리 경로는 모든 나라에서 형태가 같습니다. GET /v1/economics/{country}/central-bank/policy-rate는 인도네시아에서 rate 5.75(instrument는 bi_rate), 브라질에서 13.75(instrument는 selic_target)를 반환했습니다. 성장률은 GET /v1/economics/{country}/gdp-growth에서 가져옵니다.

어느 나라가 응답하는지 테스트하기

커버리지는 나라와 계열마다 다르므로, 전부 있다고 가정하지 말고 조합마다 테스트하세요. 다음은 주요 신흥국 여섯 곳의 HTTP 결과입니다.

국가인플레이션정책금리GDP 성장률실업률
인도네시아 (IDN)200200200404
브라질 (BRA)200200200404
멕시코 (MEX)200404200200
인도 (IND)404404200200
남아프리카공화국 (ZAF)404404200200
튀르키예 (TUR)404404404404

404에는 문제 코드 series_not_found가 붙습니다. 해당 경로에 그 나라의 발표 계열이 없다는 뜻이므로, 공백으로 처리하고 계속 진행하세요. 레이아웃을 설계하기 전에 필요한 다른 국가 코드로도 같은 반복문을 실행하세요. 한 번 실행하면 표의 어느 칸을 월별 경로로 채울 수 있고 어느 칸에 연간 대체가 필요한지 알 수 있습니다.

같은 나라의 성장률 읽기

GET /v1/economics/{country}/gdp-growth는 year_over_year, quarter_over_quarter, period, released_on을 반환합니다. 발표일은 나라마다 크게 다르므로 수치 옆에 released_on을 함께 출력하세요.

국가기간전년 대비전분기 대비발표일
인도네시아2026-Q25.31.32026-10-30
브라질2026-Q21.90.52026-10-30
멕시코2026-Q21.91.42026-08-24
남아프리카공화국2026-Q20.9-0.22026-09-08

남아프리카공화국 응답에는 year_over_year_not_seasonally_adjusted가, 인도 응답에는 not_seasonally_adjusted가 들어 있습니다. 두 나라를 한 차트에 올리기 전에 이 플래그를 확인하세요.

World Bank 연간 데이터로 공백 채우기

월별 경로에 계열이 없어도 카탈로그에는 연간 계열이 있을 수 있습니다. GET /v1/economics/catalogue는 q와 source로 검색합니다. wdi 소스에서 인플레이션을 검색하면 {country} 슬롯이 있는 id_template이 반환됩니다. 이 슬롯을 소문자 세 글자 코드로 바꾸세요. 예를 들어 인도는 wdi:fp.cpi.totl.zg/ind입니다.

curl, 카탈로그에서 인플레이션 검색
curl -s "https://api.narwhalapi.com/v1/economics/catalogue?source=wdi&q=inflation&limit=1" \
  -H "Authorization: Bearer $NARWHAL_API_KEY"
응답, 첫 번째 결과
{
  "results": [
    {
      "id_template": "wdi:fp.cpi.totl.zg/{country}",
      "source": "wdi",
      "title": "Inflation, consumer prices (annual %)",
      "frequency": "annual",
      "unit_label": "Inflation, consumer prices (annual %)"
    }
  ]
}

관측값은 GET /v1/economics/catalogue/series/observations?id=...로 읽습니다. 연간 계열에서는 start와 end에 연도를 넣습니다. 각 응답이 attribution과 licence_url을 반복해서 담고 있으므로, 어떤 차트든 그 옆에 함께 두세요. 튀르키예는 월별 경로에 데이터가 없어서 좋은 테스트 대상입니다.

curl, 튀르키예 연간 인플레이션
curl -s "https://api.narwhalapi.com/v1/economics/catalogue/series/observations?id=wdi:fp.cpi.totl.zg/tur&start=2024&end=2025" \
  -H "Authorization: Bearer $NARWHAL_API_KEY"
응답, 튀르키예 연간 인플레이션
{
  "id": "wdi:fp.cpi.totl.zg/tur",
  "title": "Inflation, consumer prices (annual %), Turkiye",
  "country": "TUR",
  "frequency": "annual",
  "unit_label": "Inflation, consumer prices (annual %)",
  "attribution": "World Bank, World Development Indicators, CC BY 4.0. Values normalised by Narwhal.",
  "observations": [
    {
      "period": "2024",
      "value": "58.5064492168435"
    },
    {
      "period": "2025",
      "value": "34.8811700293777"
    }
  ]
}

나라별로 나란히 놓기

  1. 먼저 월별 데이터 요청하기 스크립트는 나라마다 인플레이션과 정책금리를 요청합니다. 404가 오면 None을 반환합니다.
  2. 연간 계열로 대체하기 월별 인플레이션이 없으면 2025년 World Bank 연간 계열을 읽고 그 줄에 연간이라고 표시합니다. 503이 오면 한 번 재시도합니다.
  3. 차이 계산하기 인플레이션과 정책금리가 모두 있으면 정책금리에서 인플레이션을 뺀 값을 퍼센트포인트로 출력합니다.
    Python, 여섯 나라
    import os
    import time
    import requests
    
    BASE = "https://api.narwhalapi.com"
    HEAD = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    
    def get(path, **params):
        for _ in range(2):
            r = requests.get(BASE + path, params=params, headers=HEAD, timeout=15)
            if r.status_code != 503:
                break
            time.sleep(3)
        if r.status_code == 404:
            return None
        r.raise_for_status()
        return r.json()
    
    for c in ("IDN", "BRA", "MEX", "IND", "ZAF", "TUR"):
        infl = get(f"/v1/economics/{c}/inflation")
        rate = get(f"/v1/economics/{c}/central-bank/policy-rate")
        if infl:
            line = f"{c} inflation {infl['year_over_year']}% ({infl['period']})"
        else:
            wb = get("/v1/economics/catalogue/series/observations",
                     id=f"wdi:fp.cpi.totl.zg/{c.lower()}", start="2025", end="2025")
            v = wb["observations"][0]
            line = f"{c} inflation {float(v['value']):.2f}% (annual {v['period']}, World Bank)"
        if rate:
            line += f" | policy rate {rate['rate']}%"
            if infl:
                line += f" | gap {float(rate['rate']) - float(infl['year_over_year']):.2f}"
        else:
            line += " | no policy rate"
        print(line)

실행하면 다음과 같이 출력되었습니다.

국가인플레이션기준정책금리정책금리 − 인플레이션
IDN3.28%월별, 2026-095.75%2.47
BRA4.58%월별, 2026-0913.75%9.17
MEX3.45%월별, 2026-09없음없음
IND2.40%연간, 2025없음없음
ZAF3.21%연간, 2025없음없음
TUR34.88%연간, 2025없음없음

연간 행을 월별 행과 순위로 비교하지 마세요. 한 달의 전년 대비 증가율과 연간 전체 수치는 기간이 다르므로, 모든 수치 옆에 Basis 열을 둡니다.

브라질의 금리 격차가 인도네시아보다 훨씬 큰 이유는 무엇인가요?

이 격차는 정책금리에서 전년 대비 인플레이션을 뺀 값으로, 브라질은 13.75 − 4.58, 인도네시아는 5.75 − 3.28입니다. 발표된 두 숫자의 단순한 차이입니다. 1에 금리를 더한 값을 1에 인플레이션을 더한 값으로 나누는 정확한 방식은 실질금리 계산하기를 참고하세요.

경로를 바꾸면 계열이 없는 나라의 데이터를 얻을 수 있나요?

월별 경로가 모든 나라를 다루는 것은 아닙니다. 튀르키예 예시처럼 카탈로그에서 같은 의미의 계열을 검색하고, 월별 수치와 비교하기 전에 그 frequency를 확인하세요.

카탈로그 호출이 503을 반환한 이유는 무엇인가요?

아직 읽은 적 없는 World Bank 계열은 503과 코드 upstream_busy로 응답할 수 있습니다. 테스트한 계열에서는 몇 초 뒤 두 번째 호출이 성공했으므로, 스크립트는 기다렸다가 한 번 재시도합니다. 카탈로그 검색 자체는 매번 200으로 응답했고, 503은 계열 읽기에서 나타났습니다.

에 게시되었습니다.

다음 단계