실시간 공식 데이터로 경제학 수업 연습문제 만들기

교사나 학생은 실시간 공식 데이터를 연습문제로 바꿀 수 있습니다. 이 페이지에서는 두 가지를 다룹니다. 정책금리와 인플레이션으로 구하는 실질금리, 그리고 명목 GDP 성장에 숨은 물가 상승분이며, 요청과 응답, Python 계산을 함께 보여 줍니다.

연습 1: 실질금리

학생들은 명목금리가 구매력 하락을 가린다는 점을 배웁니다. 이 연습에는 같은 나라의 정책금리와 인플레이션율이 필요합니다. 아래 요청은 미국 정책금리를, 그다음 요청은 미국 인플레이션을 반환합니다.

curl, 미국 기준금리
curl -s "https://api.narwhalapi.com/v1/economics/USA/central-bank/policy-rate" \
  -H "Authorization: Bearer $NARWHAL_API_KEY"
응답
{
  "country": "USA",
  "authority": "federal_reserve",
  "currency": "USD",
  "instrument": "federal_funds_target_range",
  "unit": "percent",
  "effective_on": "2026-09-17",
  "observed_on": null,
  "announced_on": null,
  "rate_type": "range",
  "lower_bound": "3.75",
  "upper_bound": "4.00"
}
curl, 미국 인플레이션
curl -s "https://api.narwhalapi.com/v1/economics/USA/inflation" \
  -H "Authorization: Bearer $NARWHAL_API_KEY"
응답
{
  "country": "USA",
  "period": "2026-09",
  "year_over_year": "3.7",
  "month_over_month": "0.6",
  "year_to_date": "4.0",
  "released_on": "2026-10-14"
}

정책금리는 범위로 반환되어 lower_bound가 3.75, upper_bound가 4.00입니다. 그래서 수업에서 먼저 던질 질문은 어느 한 값을 쓸 것인가입니다. 스크립트는 중간값인 3.875를 씁니다. 인플레이션은 2026-09 기간의 year_over_year가 3.7입니다. 두 번째 질문이 이어집니다. 금리는 지금 정해진 수준이지만 인플레이션은 지난 12개월을 나타내므로, 결과는 과거를 돌아보는 실질금리입니다. 투자자라면 무엇을 알아야 할지 학생들에게 물어보세요.

연습 2: GDP 속에 숨은 물가 상승

명목 GDP 성장은 생산의 달러 가치 변화입니다. 실질 GDP 성장은 가격 변동을 제거한 값입니다. 둘의 차이로 명목 성장 가운데 얼마가 가격 때문이었는지 수업에서 확인할 수 있습니다. 수준 값은 GDP 경로에서, 실질 성장률은 GDP 성장률 경로에서 가져옵니다.

curl, 미국 GDP 수준 (5개 분기)
curl -s "https://api.narwhalapi.com/v1/economics/USA/gdp/observations?start=2025-Q3&end=2026-Q3" \
  -H "Authorization: Bearer $NARWHAL_API_KEY"
응답
{
  "annualized": true,
  "country": "USA",
  "as_of": "2026-10-29T00:00:00Z",
  "currency": "USD",
  "observations": [
    {
      "period": "2025-Q3",
      "value": "31180493000000"
    },
    {
      "period": "2025-Q4",
      "value": "31462523000000"
    },
    {
      "period": "2026-Q1",
      "value": "31906274000000"
    },
    {
      "period": "2026-Q2",
      "value": "32563030000000"
    },
    {
      "period": "2026-Q3",
      "value": "33010036000000"
    }
  ]
}
curl, 실질 GDP 성장률 (1개 분기)
curl -s "https://api.narwhalapi.com/v1/economics/USA/gdp-growth?period=2026-Q3" \
  -H "Authorization: Bearer $NARWHAL_API_KEY"
응답
{
  "country": "USA",
  "period": "2026-Q3",
  "year_over_year": "2.1",
  "quarter_over_quarter": "0.832",
  "released_on": "2026-10-29"
}

수준 값은 현재 가격 기준 USD이며 annualized는 true입니다. 성장률 응답은 실질 기준이고 2026-Q3의 year_over_year는 2.1입니다. 두 호출은 같은 분기와 같은 비교 기간을 가리키며, 이 점이 중요합니다. 전년 대비 증가율과 전분기 대비 증가율을 섞으면 의미 없는 결과가 나옵니다. 그래서 나누기 전에 학생들이 각 숫자의 기간을 말하게 하고, 결과 옆에 노트에 적게 하세요.

두 계산 실행하기

  1. 실질금리(근사값) 명목금리에서 인플레이션을 뺍니다. 3.875 − 3.7은 0.175%p입니다. 학생들이 가장 먼저 접하는 간편 계산법입니다.
  2. 실질금리(정확한 값) 1에 명목금리를 더한 값을 1에 인플레이션을 더한 값으로 나누고 1을 뺍니다. 1.03875 ÷ 1.037 − 1은 0.169%입니다. 두 답은 소수점 셋째 자리에서 달라지며, 이야기해 볼 만한 지점입니다.
  3. 명목 GDP 성장률 2026-Q3 수준을 2025-Q3 수준으로 나누고 1을 뺍니다. 33010036000000을 31180493000000으로 나눈 뒤 1을 빼면 5.87%입니다.
  4. 내재 물가 상승률 1에 명목 성장률을 더한 값을 1에 실질 성장률을 더한 값으로 나누고 1을 뺍니다. 1.0587을 1.021로 나눈 뒤 1을 빼면 3.69%입니다.
    Python, 두 연습
    import os
    import requests
    
    BASE = "https://api.narwhalapi.com"
    HEAD = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    
    def get(path, **params):
        r = requests.get(BASE + path, params=params, headers=HEAD, timeout=15)
        r.raise_for_status()
        return r.json()
    
    # Exercise 1: the real policy rate
    policy = get("/v1/economics/USA/central-bank/policy-rate")
    lower, upper = float(policy["lower_bound"]), float(policy["upper_bound"])
    rate = (lower + upper) / 2
    inflation = float(get("/v1/economics/USA/inflation")["year_over_year"])
    approx = rate - inflation
    exact = ((1 + rate / 100) / (1 + inflation / 100) - 1) * 100
    print(f"policy {rate}  inflation {inflation}  approx {approx:.3f}  exact {exact:.3f}")
    
    # Exercise 2: how much of nominal GDP growth is price growth
    levels = get("/v1/economics/USA/gdp/observations", start="2025-Q3", end="2026-Q3")
    by_quarter = {o["period"]: float(o["value"]) for o in levels["observations"]}
    nominal = (by_quarter["2026-Q3"] / by_quarter["2025-Q3"] - 1) * 100
    real = float(get("/v1/economics/USA/gdp-growth", period="2026-Q3")["year_over_year"])
    prices = ((1 + nominal / 100) / (1 + real / 100) - 1) * 100
    print(f"nominal {nominal:.2f}  real {real}  implied price growth {prices:.2f}")
연습입력값답
실질금리(근사값)3.875와 3.70.175퍼센트포인트
실질금리(정확한 값)3.875와 3.70.169퍼센트
명목 GDP 성장률31180493000000에서 330100360000005.87퍼센트
내재 물가 상승률5.87과 2.13.69퍼센트

내재 물가 상승률은 첫 번째 연습의 인플레이션율 3.7에 가깝습니다. 소비자물가와 GDP 속 가격은 포함하는 품목 구성이 다르므로, 다른 분기에는 차이가 더 벌어질 수 있는 이유를 학생들에게 물어보세요.

같은 데이터로 어떤 다른 연습을 할 수 있나요?

  • 인플레이션: 한 응답에 들어 있는 전월 대비와 전년 대비 필드를 비교하고, 중앙은행은 어느 쪽을 인용할지 물어보세요. 인플레이션 계산기로 학생들이 결과를 직접 확인할 수 있습니다.
  • 수익률 곡선: 수익률 곡선 경로에서 2년물과 10년물 수익률을 가져와 스프레드를 계산합니다. 수익률 곡선 확인 방법과 같은 절차입니다.
  • GDP 성장률: 다른 나라로 연습 2를 반복합니다. 먼저 각 나라의 annualized 플래그를 비교하세요.

모든 경로가 계산의 출발점이 되는 숫자를 반환하므로, 학생들은 각 연습의 입력값을 발표된 수치와 대조할 수 있습니다.

학생들이 자기 나라를 사용할 수 있나요?

대체로 가능하지만 먼저 제공 범위를 확인하세요. 인도네시아와 브라질은 인플레이션율과 정책금리를 모두 반환했습니다. 멕시코는 인플레이션은 반환했지만 정책금리는 404와 코드 series_not_found로 응답했습니다. 직접 테스트해 본 국가의 짧은 목록을 학생들에게 주고, 404는 노트북에서 데이터 공백으로 처리하게 하세요.

일부 GDP 수준 값에 annualized 플래그가 있는 이유는 무엇인가요?

미국, 일본, 캐나다는 annualized가 true로 반환되어 분기 수준 값이 연율로 표시됩니다. 영국과 독일은 이 플래그가 없었습니다. 같은 계열의 두 수준 값의 비율은 영향을 받지 않으므로 연습 2가 성립합니다. 하지만 두 나라의 수준 값은 플래그, 통화, 기간이 맞기 전에는 비교할 수 없습니다.

수업에 쓸 만큼 데이터가 최신인가요?

각 응답에 released_on과 period가 있어 학생들이 수치가 얼마나 오래되었는지 볼 수 있습니다. 수업에서는 데이터를 가져오는 날짜를 고정하고 출력을 보관하세요. 나중에 호출하면 더 새로운 기간이 반환되어 답이 달라질 수 있기 때문입니다.

에 게시되었습니다.

다음 단계