이제 키가 필요해진 exchangerate.host, 대안은 무엇인가
exchangerate.host는 한때 가입 없이도 요청에 응답했습니다. 이제는 APILayer가 운영하며, Free 플랜은 키 뒤에서 월 100회 요청으로 제한됩니다. 무엇이 바뀌었고 개발자들이 어디로 옮겨가고 있는지 살펴봅니다.
몇 년간 문제없이 돌아가던 스크립트가 갑자기 401이나 "할당량 초과" 메시지를 반환한다면, 원인은 거의 확실히 이것입니다: exchangerate.host가 APILayer 아래로 이동했고, 키 없이 사실상 무제한이던 엔드포인트가 이제 가입을 요구하며 Free 플랜에서 월 100회 요청만 허용합니다. 유료 등급은 월 $14.99부터 시작해 10,000회 요청을 제공합니다. 아래는 현실적인 선택지들이며, 더 찾아볼 필요 없이 무료 옵션을 쓰면 되는 경우도 포함합니다.
실제로 무엇이 바뀌었나
exchangerate.host는 무료이고 키가 필요 없는 옵션이라는 평판을 쌓았습니다: 가입 없이 그저 GET 요청만 하면 됐죠. 그 버전은 이제 사라졌습니다. 지금은 APILayer가 운영하며, 모든 요청은 계정에 연결된 apikey 헤더가 필요합니다.
Free 플랜은 월 100회 요청만 허용합니다. 하루에 수백 번씩 호출하던 프로젝트라면 첫 주가 끝나기도 전에 이 한도에 도달합니다. 유료 액세스는 월 $14.99부터 시작해 10,000회 요청을 제공합니다.
하루 한 번의 ECB 고시가만으로 충분하다면
유료 옵션들을 비교하기 전에, 그중 어느 것이라도 필요한지부터 따져 보세요. Frankfurter는 오픈소스이며 API 키가 전혀 필요 없습니다. 유럽중앙은행 참조 환율을 감싸고 있으며, 영업일마다 한 번, 대략 16:00 CET에 발표되고 주말 데이터는 없습니다 — 토요일에는 금요일 종가가 표시됩니다 — 그리고 이제 mcp.frankfurter.dev에서 자체 MCP 서버도 제공합니다.
대시보드, 보고서, 또는 "오늘의 공식 환율"만 필요한 배치 작업이라면, 이 하루 한 번의 주기만으로 충분할 수 있습니다. 그렇지 않다면 엔드포인트 매핑이 포함된 전체 마이그레이션 가이드가 아래에 링크되어 있습니다.
현실적인 대안들을 나란히 비교하기
이 분야는 각 Free 등급이 무엇을 제한하는지에 따라 나뉩니다: 기준 통화, 호출 횟수, 또는 둘 다입니다.
ExchangeRate-API: 키는 필요 없지만, 출처 표기 약관을 확인하세요
ExchangeRate-API는 open.er-api.com에서 키가 필요 없는 오픈 액세스 엔드포인트를 운영하며, Frankfurter처럼 하루 한 번 갱신됩니다. 다만 "Rates By Exchange Rate API"를 링크와 함께 표시해야 하고, 원본 데이터를 재배포해서는 안 됩니다. 요청 한도에 도달하면 429가 반환되며 20분 후 해제됩니다. 키가 있는 등급도 있으며, 월 1,500회 요청을 제공합니다.
Open Exchange Rates: 1,000회 요청이지만 USD에 고정
Open Exchange Rates는 매시간 갱신과 일별 과거 데이터를 포함해 월 1,000회 무료 요청을 제공합니다. 함정은 Free 플랜이 USD로 고정되어 있다는 것입니다. IDR이나 GBP를 기준 통화로 쓰려면 클라이언트 측에서 변환하거나, 월 $12를 내고 모든 기준 통화와 시계열, 변환 호출을 이용해야 합니다.
Fixer: 100회 호출, EUR만, 변환 엔드포인트 없음
Fixer의 Free 플랜은 매시간 갱신과 과거 데이터를 포함해 월 100회 API 호출을 허용합니다. 기준 통화는 EUR로 고정되어 있고, BASIC 등급 전까지 변환 엔드포인트가 없습니다 — /convert?from=USD&to=IDR는 작동하지 않으므로 직접 값을 가져와 곱해야 합니다.
이 안에서 exchangerate.dev의 위치
exchangerate.dev의 Free 등급은 가입에 카드가 필요 없이 월 10,000회 호출, 분당 12회 요청을 제공합니다. 빠른 평가를 위한 익명의 키 없는 호출도 가능하며, IP별로 상한이 있습니다. 어떤 등급에서도 기준 통화 제한이 없습니다 — 카탈로그에 있는 465개 통화쌍 중 무엇이든 기준 통화가 될 수 있습니다. 1999년까지 거슬러 올라가는 일별 과거 데이터는 유료 플랜 뒤에 가려지지 않고 모든 등급에서 무료로 제공됩니다.
주요 통화쌍은 거래 주간 내내 약 60초마다 갱신되며, 대부분의 다른 통화쌍도 마찬가지이고, ECB와 FRED 참조 환율이 나머지를 채웁니다. 모든 응답은 source, market_session, timestamp, data_updated_at, notice 필드를 담고 있어서, 코드가 시계에 의존해 추측하지 않고도 실시간 현물 환율과 일별 고시가를 구분할 수 있습니다. 키가 있는 MCP 서버는 Free를 포함한 모든 플랜에서 REST API와 동일한 할당량으로 제공됩니다.
마이그레이션에서 실제로 무엇이 깨지는가
키가 필요 없는 엔드포인트에서 벗어나는 작업은 URL만 바꾸는 것으로 끝나지 않습니다. Frankfurter와 ExchangeRate-API의 오픈 액세스 엔드포인트를 제외한 위의 모든 옵션은 Authorization 헤더나 apikey 매개변수를 요구하므로 이를 추가해야 합니다. 필드 이름도 표준화되어 있지 않아서, 한 API에서 rates.EUR를 읽던 스크립트가 새 제공업체가 데이터를 다르게 중첩시키면 조용히 깨질 수 있습니다.
요청 한도는 그냥 넘길 문제가 아니라 재시도 로직이 필요합니다. 월 수백 회 수준의 Free 등급에서는 백오프 없는 재시도 루프 하나가 하루치 예산을 몇 분 만에 소진시킬 수 있습니다. 적극적으로 캐시하고 월간 횟수를 절대적인 상한으로 취급하세요.
하나를 고르기
코드에 영향을 주는 제약에 맞춰 고르세요. 설정 없이 하루 한 번 ECB 환율만 필요하다면: Frankfurter. 출처 표기 텍스트를 추가할 의향이 있다면: ExchangeRate-API의 오픈 엔드포인트. USD나 EUR이 아닌 기준 통화, 또는 장중 변동이 필요하다면: 그것이 exchangerate.dev를 포함한 키 기반 옵션들이 채우는 공백입니다.