Fixer의 100회 호출 한도에 도달했나요? 나머지 선택지를 소개합니다
Fixer의 Free 플랜은 월 100회 호출을 제공하고, 기준 통화를 EUR로 고정하며, 요금을 내기 전까지 변환 엔드포인트를 제외합니다. 이 중 어느 것도 작은 글씨로 숨겨져 있지 않지만, "무료 등급"이라는 헤드라인만 읽은 사람들은 놀라곤 합니다. 그 외에 무엇이 있는지 살펴봅니다.
Fixer의 Free 플랜에서 개발자를 붙잡는 것은 두 가지입니다: 월 100회 호출이라는 예산이 빠르게 바닥나고, "임의의 기준 통화"는 BASIC 유료 등급 이상에서만 풀리기 때문에 모든 환율이 EUR 기준으로 돌아옵니다. 그때까지는 /convert 엔드포인트도 없어서, USD를 IDR로 변환하려면 EUR 기준 환율을 가져와 직접 계산해야 합니다. 아래는 Fixer를 대체할 수 있는 것들과 각 대안이 대신 요구하는 비용을 솔직하게 살펴본 것입니다.
Fixer Free 플랜의 두 가지 벽
월 100회 호출은 하루 약 3회에 해당합니다 — 한 번 테스트하기엔 괜찮지만, 하루에 통화쌍 하나만 확인하는 운영 중인 앱에는 부족합니다. 이 호출 상한이 대부분의 사람이 가장 먼저 부딪히는 벽입니다.
두 번째 벽: Free 플랜은 모든 것을 EUR 기준으로 고시합니다. USD에서 IDR로 변환하려면 두 통화의 EUR 환율을 가져와 나눠야 합니다. EUR이 아닌 기준 통화와 /convert 모두 BASIC 등급을 요구하기 때문입니다.
100회 호출, EUR 전용 플랜을 대체하는 것
올바른 대체재는 어느 벽이 더 중요했는지에 달려 있습니다. 두 벽을 모두 무료로 해결해 주는 제공업체는 거의 없습니다.
Frankfurter: 상한 없음, 키 불필요, 하루 한 번
호출 한도 때문에 Fixer를 떠나야 했고 하루 한 번의 환율로도 충분하다면, Frankfurter는 상한을 완전히 없애줍니다. 오픈소스이고 API 키가 없으며, mcp.frankfurter.dev에서 자체 MCP 서버도 제공합니다. 영업일마다 대략 16:00 CET에 발표되는 ECB 참조 환율을 감싸고 있으며, 주말에는 발표되지 않습니다 — 토요일에는 금요일 종가가 반환됩니다. 하루 한 번의 공식 환율만 필요한 보고서나 야간 작업이라면, 이것이 Fixer의 두 가지 문제를 동시에 해결해 줍니다.
ExchangeRate-API: 역시 키 불필요, 출처 표기 약관 포함
open.er-api.com에 있는 ExchangeRate-API의 오픈 액세스 엔드포인트는 가입이 필요 없으며, Frankfurter처럼 하루 한 번 갱신됩니다. 약관은 다릅니다: "Rates By Exchange Rate API"를 링크와 함께 표시해야 하고, 원본 응답을 재배포해서는 안 됩니다. 한도를 초과하면 429가 반환되며 20분 후 해제됩니다. 키가 있는 등급도 있으며, 월 1,500회 요청을 제공합니다.
Open Exchange Rates: 호출 횟수는 열 배, 그러나 여전히 하나의 기준 통화
Open Exchange Rates는 상한을 월 1,000회 무료 요청으로 올려서 Fixer의 100회보다 확실히 나아졌습니다. 다만 Free 플랜은 EUR이 아니라 USD로 고정되어 있고, 시계열과 변환 요청도 제외됩니다. 유료 플랜은 월 $12부터 시작하며 기준 통화 제한을 완전히 없애줍니다.
exchangerate.host: 동일한 100회 상한, 이제는 키 뒤에
누구도 하나의 벽을 똑같은 벽과 맞바꾸지 않도록 짚어둘 필요가 있습니다: exchangerate.host는 이제 APILayer 키 뒤에서 운영되며, Free 플랜에서 월 100회로 제한됩니다 — 정확히 Fixer가 주는 것과 같은 숫자입니다. Fixer에서 exchangerate.host로 옮기면 EUR 기준 통화 문제는 해결되지만 호출 횟수 문제는 해결되지 않습니다.
exchangerate.dev가 맞는 자리
exchangerate.dev의 Free 등급은 가입에 카드가 필요 없이 월 10,000회 호출, 분당 12회 요청을 제공합니다. 이는 Fixer 상한의 100배입니다. 어떤 등급에서도 기준 통화 제한이 없습니다 — 카탈로그에 있는 465개 통화쌍 중 무엇이든 어느 쪽에서든 조회할 수 있습니다. 1999년까지 거슬러 올라가는 일별 과거 데이터는 업그레이드 뒤에 가려지지 않고 모든 플랜에서 무료입니다.
주요 통화쌍은 거래 주간 내내 약 60초마다 갱신되며, 나머지는 ECB와 FRED 참조 데이터가 뒷받침합니다. 각 응답에는 source, market_session, notice 필드가 포함되어, 코드가 실시간 환율과 일별 고시가를 곧바로 구분할 수 있습니다. /v1/convert 엔드포인트가 무료로 제공되어, Fixer가 BASIC 등급까지 남겨두는 공백을 메꿔줍니다.
EUR을 거치는 중간 단계도, 클라이언트 측 곱셈도 필요 없습니다. derived: false는 해당 통화쌍이 제3의 통화를 거쳐 삼각 계산되지 않고 직접 고시된다는 뜻입니다.
실제 마이그레이션에 관한 참고 사항
제공업체를 바꾸는 일이 한 줄짜리 변경으로 끝나는 경우는 드뭅니다. 응답 필드 이름이 다릅니다 — 어떤 곳은 rates를 반환하고, 다른 곳은 같은 숫자를 quotes나 conversion_rates 아래에 중첩시킵니다 — 그래서 고정된 키 경로가 오류를 내지 않고 조용히 실패할 수 있습니다.
재시도 로직은 상한이 높을 때보다 낮을 때 더 중요합니다. 타임아웃 한 번 후 제한 없는 재시도 루프로 월 100회나 1,000회의 예산을 소진하는 것은 매달 10일쯤 할당량이 바닥나는 흔한 원인입니다. 응답을 캐시하고 리셋 주기를 절대적인 제약으로 취급하세요.
문제의 벽에 맞는 해결책 고르기
호출 횟수가 문제였다면, Frankfurter나 ExchangeRate-API의 오픈 엔드포인트가 상한을 무료로 없애줍니다. EUR 기준 통화가 문제였다면, Open Exchange Rates가 1,000회 한도 안에서 그 공백을 해결합니다. 두 벽 모두 중요하다면, 그 조합이 바로 exchangerate.dev를 포함한 키 기반 대안들이 만들어진 이유입니다.