FastAPI로 환율·국채 금리 조회 API 만들기 초보 가이드
실시간 환율과 국채 금리를 불러오는 조회 API를 FastAPI로 만드는 흐름을, 외부 API 호출부터 캐싱과 예외 처리까지 초보자 눈높이로 정리했어요.
FastAPI로 환율·국채 금리 조회 API 만들기
환율이나 국채 금리가 움직일 때마다 화면 속 숫자를 손으로 고치고 있다면, 그 반복은 API 하나로 줄일 수 있어요. 오늘은 실시간 환율과 금리를 불러와 내 서비스가 쓰기 좋은 형태로 돌려주는 조회 API를, FastAPI로 처음부터 만들어볼게요.
무엇을 만드나요
핵심은 간단해요. 외부에서 환율·금리 데이터를 받아와, 필요한 값만 골라 응답해주는 작은 서버예요. FastAPI를 쓰는 이유는 파이썬이라 진입장벽이 낮고, 타입 힌트로 응답 형태가 분명해지고, /docs 자동 문서까지 딸려오기 때문이에요.
데이터는 어디서 받나요
환율은 한국수출입은행 오픈 API나 공공데이터포털에서, 금리·국채 데이터는 한국은행 경제통계시스템(ECOS) 오픈 API에서 받을 수 있어요. 대부분 무료지만 인증키 발급이 필요해요. 이 키는 코드에 그대로 박지 말고 환경변수로 빼두세요. 커밋에 섞여 들어가면 곤란하거든요.
요청 흐름 잡기
외부 호출은 httpx로 하면 편해요. FastAPI의 비동기 방식과도 잘 맞아요.
import httpx
from fastapi import FastAPI
app = FastAPI()
@app.get("/rates/usd")
async def usd_rate():
async with httpx.AsyncClient(timeout=5) as client:
res = await client.get(EXIM_URL, params={"authkey": API_KEY})
data = res.json()
return {"currency": "USD", "rate": pick_rate(data)}파라미터 이름은 쓰는 제공처마다 달라요. 문서를 보고 맞춰주세요.
캐싱은 왜 필요할까요
금융 데이터가 초 단위로 바뀌진 않아요. 그런데 외부 API는 대개 호출 횟수 제한이 있어요. 그래서 몇 분짜리 TTL 캐시를 두면 외부 호출은 줄고 응답은 빨라져요. 요청마다 매번 외부로 나가지 않게 막아주는 거예요.
- 인증키는 환경변수
- 응답은 캐싱
- 외부 실패 대비 예외 처리
실패는 반드시 대비하기
외부 API는 느려지거나 잠깐 죽을 수 있어요. 타임아웃을 걸고, 예외를 잡고, 실패하면 마지막으로 받아둔 값을 돌려주는 fallback을 준비해두면 내 서비스가 같이 멈추는 일을 막을 수 있어요.
저도 플랜티(plan-t) 시리즈 백엔드를 이런 조회 API 패턴으로 굴리고 있어요. 작은 도구지만 손이 가던 반복을 확실히 줄여줘요.
정리
처음부터 여러 통화와 지표를 다 넣으려 하지 마세요. 엔드포인트 하나가 제대로 도는 걸 확인한 뒤, 통화와 지표를 하나씩 늘려가면 돼요. 혼자 운영하면서 가장 지치는 건 늘 반복 작업인데, 이런 조회 API 하나가 그 부담을 꽤 덜어줘요.
관련 글
댓글
아직 댓글이 없어요. 첫 댓글을 남겨주세요.