통화 페어 완전 정복: 메이저, 마이너, 이그조틱 페어 (개발자 가이드)
국제 결제와 관련된 무언가를 만들고 있다면 — 체크아웃, 핀테크 대시보드, 트레이딩 봇, 트레저리 도구, 심지어 단순한 환율 계산기까지 — 작업을 시작한 첫 한 시간 안에 통화 페어 개념을 만나게 됩니다. 페어는 외환(FX) 시장의 측정 단위입니다. 한 통화는 그 자체로 가격이 없고, 다른 통화에 대해서만 가격을 가집니다. 페어가 어떻게 분류되고 호가되며 코드에서 어떻게 다뤄지는지를 이해하는 것은 앞으로 만들 모든 FX 기능의 토대입니다.
이 가이드는 개발자 관점에서 메이저, 마이너, 이그조틱 통화 페어를 설명합니다. 각 카테고리의 의미, 페어 문자열을 읽고 쓸 때 따라야 하는 관습, 그리고 Finexly API 문서를 통해 페어를 가져오고 정규화하고 계산하는 실용적인 패턴을 다룹니다. 다 읽고 나면 어떤 페어를 우선 지원해야 할지, 엣지 케이스를 어떻게 다뤄야 할지, 그리고 몇 줄의 코드로 실시간 환율을 가져오는 방법을 알게 됩니다.
통화 페어란?
통화 페어는 한 통화의 가격을 다른 통화의 단위로 표현한 호가입니다. 항상 두 개의 ISO 4217 코드 — 예: EUR/USD 또는 EURUSD — 와 하나의 십진수 가격으로 작성됩니다.
페어의 첫 번째 통화는 기준 통화, 두 번째는 호가 통화(또는 카운터 통화)라고 합니다. 가격은 기준 통화 1단위를 사기 위해 호가 통화가 얼마나 필요한지를 알려줍니다.
따라서 EUR/USD = 1.0850은 1유로가 1.0850 미국 달러임을 의미합니다. 호가가 1.0900으로 오르면 유로가 달러 대비 강해진 것이고, 1.0800으로 내려가면 약해진 것입니다. 기준 통화는 "값이 매겨지는 대상", 호가 통화는 "지불에 사용되는 돈"입니다.
간단한 관습이지만 거의 모든 개발자가 한 번쯤은 헷갈립니다. 어느 쪽이 기준이고 어느 쪽이 호가인지 일관되게 추적하지 않고 환율을 저장하면, 결국 숫자를 뒤집어서 사용자에게 조용히 더 청구하거나 덜 청구하게 됩니다. 이를 피하는 방법은 아래 코드 섹션에서 다룹니다. 가격 자체가 어떻게 형성되는지에 대한 더 깊은 입문은 환율의 작동 원리 가이드를 참고하세요.
글로벌 FX 시장은 국제결제은행의 3년 주기 조사에 따르면 하루 약 7.5조 달러를 거래하며, 세계에서 가장 큰 금융 시장입니다. 그 유동성은 페어 사이에 균등하게 분포하지 않으며, 대부분이 메이저 페어라고 불리는 작은 그룹에 집중됩니다.
메이저 통화 페어
메이저 페어는 세계에서 가장 많이 거래되는 통화 페어입니다. 시장에 단일 공식 정의는 없지만, 실무적으로 모든 메이저 페어는 두 가지 속성을 가집니다. 한쪽은 미국 달러(USD)이고, 다른 한쪽은 크고 안정적이며 선진화된 경제권의 통화입니다.
업계에서 거의 보편적으로 메이저로 인정하는 일곱 페어는 다음과 같습니다:
EUR/USD— 유로 / 미국 달러USD/JPY— 미국 달러 / 일본 엔GBP/USD— 영국 파운드 / 미국 달러USD/CHF— 미국 달러 / 스위스 프랑AUD/USD— 호주 달러 / 미국 달러USD/CAD— 미국 달러 / 캐나다 달러NZD/USD— 뉴질랜드 달러 / 미국 달러
전체 메이저는 글로벌 FX 거래량의 약 75%를 차지하며, EUR/USD 한 페어만으로 전체의 약 4분의 1을 설명합니다. 이 집중도는 여러분이 만드는 모든 것에 직접적인 영향을 줍니다:
- 가장 좁은 스프레드. 매수 호가(매수자가 지불하는 가격)와 매도 호가(매도자가 요구하는 가격)의 차이가 메이저에서 가장 작습니다. 최종 사용자에게 환율을 노출한다면, 이는 미드마켓 환율과 사용자가 실제로 받는 환율 사이의 차이가 가장 작다는 뜻입니다.
- 가장 높은 업데이트 빈도. 메이저의 틱 데이터는 거래 시간 중 초당 여러 번 들어옵니다. 마이너와 이그조틱은 더 드물게 갱신됩니다.
- 가장 신뢰할 수 있는 과거 데이터. 백테스트, 분석, 차트 작성에서 메이저는 가장 깨끗하고 길며 빈틈이 적은 히스토리를 갖습니다.
- 유효한 응답당 API 비용 최저. 메이저 페어 하나가 종종 다른 수십 개 환율의 빌딩 블록(크로스 환율 계산을 통해)이 되므로, 메이저를 적극적으로 캐시하고 나머지를 파생시키는 방식만으로 글로벌 제품을 운영할 수 있습니다.
Finexly에서 일곱 메이저를 한 번의 요청으로 가져오는 최소 예제:
// Fetch all major pairs vs USD in a single call
const symbols = ['EUR', 'JPY', 'GBP', 'CHF', 'AUD', 'CAD', 'NZD'];
const response = await fetch(
`https://api.finexly.com/v1/latest?base=USD&symbols=${symbols.join(',')}`,
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const data = await response.json();
console.log(data.rates);
// { EUR: 0.9217, JPY: 154.32, GBP: 0.7891, CHF: 0.8843, ... }base=USD로 요청해서 각 심볼의 환율을 USD 기준으로 받았다는 점에 주목하세요. 관습적인 페어 방향(USD/EUR이 아닌 EUR/USD)을 얻으려면 역수를 취해야 할 수 있습니다. 이 패턴은 아래 코드 섹션에서 다룹니다.
마이너 (크로스) 통화 페어
마이너 페어, 또는 크로스 또는 크로스 통화 페어라고도 불리는 것은 미국 달러를 포함하지 않는 두 메이저 통화의 쌍입니다. "크로스"라는 이름은 역사적으로 이 페어를 두 USD 페어를 "교차"하여 계산해야 했던 데서 유래합니다. 예: EUR/USD와 GBP/USD로부터 EUR/GBP를 도출. 오늘날 대부분의 API와 브로커가 직접 호가하지만, 이면의 수학을 이해하는 것은 여전히 유용합니다.
흔한 마이너 페어:
EUR/GBP— 유로 / 영국 파운드EUR/JPY— 유로 / 일본 엔EUR/CHF— 유로 / 스위스 프랑GBP/JPY— 영국 파운드 / 일본 엔AUD/JPY— 호주 달러 / 일본 엔CHF/JPY— 스위스 프랑 / 일본 엔EUR/AUD— 유로 / 호주 달러GBP/CAD— 영국 파운드 / 캐나다 달러
크로스도 여전히 유동성이 풍부합니다 — 특히 EUR과 JPY 크로스 — 하지만 스프레드는 일반적으로 일곱 메이저보다 넓고, 일중 변동성도 더 큰 경향이 있습니다. 예를 들어 GBP/JPY는 트레이더 사이에서 격렬한 움직임으로 유명해 종종 "드래곤"이라 불립니다.
개발자에게 실용적인 함의는, 모든 비-USD 페어에 이그조틱 수준의 마크업이나 갱신 주기를 가정하지 말라는 것입니다. 크로스는 중간에 위치합니다. 거의 모든 B2C 또는 B2B 제품에 충분한 유동성을 제공하지만, EUR/USD만큼 좁은 스프레드는 아닙니다.
공급업체가 특정 크로스를 직접 호가하지 않더라도, 두 USD 다리에서 파생할 수 있습니다:
# Derive EUR/GBP from EUR/USD and GBP/USD
eur_usd = 1.0850 # 1 EUR = 1.0850 USD
gbp_usd = 1.2680 # 1 GBP = 1.2680 USD
# 1 EUR = (eur_usd / gbp_usd) GBP
eur_gbp = eur_usd / gbp_usd
print(f"EUR/GBP = {eur_gbp:.4f}") # EUR/GBP = 0.8557이것이 대부분의 환율 엔진이 뒤에서 하는 일입니다. Finexly는 통화 변환 엔드포인트를 통해 크로스를 직접 반환하지만, 이 수학을 머릿속에 두는 것은 좋은 일입니다 — 어떤 환율도 점검할 수 있고, 특정 페어가 피드에 빠졌을 때 우아하게 폴백할 수 있습니다.
이그조틱 통화 페어
이그조틱 페어는 메이저 통화(보통 USD 또는 EUR)와 더 작거나 신흥 또는 유동성이 낮은 경제의 통화를 결합합니다. 예시:
USD/TRY— 미국 달러 / 터키 리라USD/MXN— 미국 달러 / 멕시코 페소USD/ZAR— 미국 달러 / 남아프리카공화국 랜드USD/BRL— 미국 달러 / 브라질 헤알USD/INR— 미국 달러 / 인도 루피USD/THB— 미국 달러 / 태국 바트EUR/PLN— 유로 / 폴란드 즐로티EUR/HUF— 유로 / 헝가리 포린트USD/SGD— 미국 달러 / 싱가포르 달러USD/HKD— 미국 달러 / 홍콩 달러
"마이너"와 "이그조틱"의 경계는 모호합니다 — USD/SGD와 USD/HKD는 경제가 매우 발달했기 때문에 마이너로 분류되기도 하고, USD/CNH(역외 위안화)는 무역량 때문에 메이저로 분류되기도 합니다. 카테고리보다 코드에 영향을 주는 특성이 더 중요합니다:
- 더 넓은 스프레드. 매수-매도 차이가 메이저보다 5~20배 더 클 수 있습니다.
- 시간 외 유동성 저하. 많은 이그조틱이 현지 시장 영업 시간 외에 얇게 거래되므로, 주말이나 야간 환율은 오래되었거나 점프할 수 있습니다.
- 헤드라인 민감도. 이그조틱 통화는 현지 정치 뉴스, 중앙은행 결정, 자본 통제 발표에 강하게 반응합니다. 자세한 분석은 지정학적 사건이 환율에 미치는 영향을 참고하세요.
- 더 잦은 환율 갭.
USD/TRY같은 페어는 주말이나 금리 결정 후에 몇 퍼센트 점프할 수 있습니다. 청구나 가격 책정 로직이 이를 고려하지 않으면, 큰 변동 후 한 시간 동안 사용자에게 오래된 환율을 보여주게 될 수 있습니다. - 페그되거나 관리되는 통화. 일부 "이그조틱"은 중앙은행이 개입해 거의 움직이지 않습니다 —
USD/HKD가 고전적인 예로, 좁은 밴드 내에서 유지됩니다. 차트는 거의 평평해 보일 텐데, 이는 데이터 버그가 아니라 정확한 모습입니다.
신흥 시장을 대상으로 하는 제품이라면 이그조틱을 각주로 취급하지 마세요 — 가격 책정의 가장 큰 고통이 거기에 있는 경우가 많습니다. 운영 패턴을 더 깊이 다룬 2026년 환율 변동성 대응 가이드도 있습니다.
직접, 간접, 역호가
메이저/마이너/이그조틱 외에 모든 개발자가 알아야 할 어휘가 또 하나 있습니다 — 직접 호가와 간접 호가의 차이입니다.
직접 호가는 외국 통화를 자국 통화 단위로 표현합니다. 미국 관점에서 USD/EUR = 0.92는 직접 호가입니다 — 미국 사용자에게 1달러로 0.92유로를 살 수 있다고 알려줍니다. 간접 호가는 그것을 뒤집은 것으로, EUR/USD = 1.0850은 유럽 관점에서 직접 호가, 미국 관점에서 간접 호가입니다.
전통적인 FX 시장 호가는 사용자 관점이 아니라 역사적인 "랭킹" 규칙을 따릅니다:
EUR은 다른 어떤 것과 짝지어질 때도 항상 기준 통화입니다.GBP은EUR을 제외하면 기준입니다.AUD와NZD는EUR과GBP을 제외한 대부분에 대해 기준입니다.USD는 위 네 통화를 제외한 대부분에 대해 기준입니다.JPY는 거의 항상 호가 통화입니다.
따라서 EUR/USD, GBP/USD, AUD/USD, USD/JPY, USD/CHF가 관습적인 방향이며, USD/EUR은 절대 아닙니다. 공급업체가 USD/EUR을 반환한다면, 이는 모든 환율을 USD 기준으로 반환한다는 신호이며, 트레이더나 금융 전문가에게 표시할 때는 페어를 뒤집는 것이 여러분의 몫입니다.
뒤집기는 단순한 수학이지만 실수하기 쉽습니다:
// Convert USD-based rate to conventional pair direction
function toConventionalQuote(base: string, quote: string, rate: number) {
const usdBaseFirst = ['EUR', 'GBP', 'AUD', 'NZD'];
// If the quote currency is "stronger" by convention, flip
if (usdBaseFirst.includes(quote)) {
return { pair: `${quote}/${base}`, rate: 1 / rate };
}
return { pair: `${base}/${quote}`, rate };
}
toConventionalQuote('USD', 'EUR', 0.9217);
// → { pair: 'EUR/USD', rate: 1.0850 }시장 관습에 신경 쓰지 않는 최종 사용자에게만 가격을 보여준다면 이 단계를 건너뛰고 자국 통화 기준으로 모든 것을 호가해도 됩니다. 그러나 트레이더, 트레저러, 회계사 같은 전문 사용자에게 서비스한다면 방향을 정확히 맞추는 것이 신뢰의 표시가 됩니다.
코드에서 통화 페어 처리하기
여기에 대부분의 버그가 있습니다. 수천 건의 API 통합 경험에서 정제한 권장 패턴입니다.
1. 내부적으로 항상 ISO 4217 코드 사용
통화 식별자를 기호($, €, ¥)나 이름("달러")으로 저장하지 마세요. 세 글자 ISO 4217 코드 — USD, EUR, JPY 로 저장하세요. 기호는 모호하고($는 20개 이상의 통화에서 사용), 이름은 현지화됩니다. ISO 코드는 모호하지 않고 언어 중립적입니다.
2. 페어 문자열은 경계에서 정규화
페어가 EURUSD, EUR/USD, EUR-USD, EUR_USD, eur/usd 등 다양한 형태로 나타날 것입니다. 하나의 내부 표현을 선택하고 시스템 경계에서 정규화하세요:
function normalizePair(input) {
const cleaned = input.toUpperCase().replace(/[^A-Z]/g, '');
if (cleaned.length !== 6) {
throw new Error(`Invalid pair: ${input}`);
}
return {
base: cleaned.slice(0, 3),
quote: cleaned.slice(3, 6),
canonical: `${cleaned.slice(0, 3)}/${cleaned.slice(3, 6)}`,
};
}
normalizePair('eur-usd');
// → { base: 'EUR', quote: 'USD', canonical: 'EUR/USD' }내부에서는 문자열보다 구조화된 형태({ base, quote })를 선호하세요. 문자열은 로그와 API용, 구조화 데이터는 코드용입니다.
3. 피벗을 통해 임의의 두 통화 변환
단일 기준(관습적으로 USD)으로 환율을 캐시한다면, 어떤 페어든 즉석에서 계산할 수 있습니다:
def convert(amount, source, target, rates_in_usd):
"""
rates_in_usd: dict like {'EUR': 0.9217, 'GBP': 0.7891, ...}
Each value is "1 USD = X units of currency"
"""
if source == target:
return amount
if source == 'USD':
return amount * rates_in_usd[target]
if target == 'USD':
return amount / rates_in_usd[source]
# Pivot through USD
amount_in_usd = amount / rates_in_usd[source]
return amount_in_usd * rates_in_usd[target]
# Convert 100 EUR to JPY using USD-based rates
rates = {'EUR': 0.9217, 'JPY': 154.32}
print(convert(100, 'EUR', 'JPY', rates)) # 16,743.31이 패턴으로 "USD 대 모든 통화"의 단일 핫 캐시만으로 170+ 통화를 지원할 수 있습니다. Finexly의 /v1/latest?base=USD 엔드포인트는 정확히 이 형태를 반환합니다.
4. 소수 정밀도를 올바르게 처리
통화 페어는 관습적으로 다른 정밀도 수준을 사용합니다: 대부분의 메이저는 소수점 4~5자리(1.08503)로 호가되고, JPY 페어는 2~3자리(154.32)로 호가됩니다. 베트남 동 같은 통화는 보조 단위가 없습니다. 사용자 잔액에 영향을 주는 금액을 계산할 때는 항상 환율을 Decimal / BigDecimal 타입으로 저장하고, float은 절대 사용하지 마세요. 정확한 함정은 Python 통화 API 튜토리얼에서 다룹니다.
5. 똑똑하게 캐시, 무식하게 말고
메이저 페어는 조용한 시장에서는 1초마다 거의 움직이지 않으므로, 30~60초 캐시해도 아무도 눈치채지 못합니다. 이그조틱은 예정된 뉴스 주변에서 더 짧은 TTL이 필요할 수 있습니다. 두 경우 모두에 작동하는 계층화된 캐시 전략은 캐싱 및 에러 처리 가이드에 정리되어 있습니다.
피해야 할 흔한 실수
실제 팀들을 곤란하게 한 짧은 목록:
- 페어 방향 없이 환율만 저장. "1.0850"은 그것이
EUR/USD인지USD/EUR인지 모르면 아무 의미가 없습니다. - 사용자 관점과 시장 관점의 호가를 같은 UI에서 섞기. 하나를 선택하고 명확하게 라벨링하세요.
- 주말 환율을 실시간으로 취급. FX 시장은 금요일 EST 17시부터 일요일 EST 17시까지 휴장입니다. 토요일 아침에 제공하는 환율은 금요일 종가입니다 — 대부분의 앱에는 괜찮지만, 어떤 종류의 실행에도 위험합니다. 외환 거래 시간을 참고하세요.
- "지원 페어" 목록을 하드코딩. API의
symbols엔드포인트를 진실의 원천으로 사용하세요. 새 통화는 시간이 지나며 등장합니다(드물게 사라집니다). - 너무 일찍 반올림. 표시 시점에 반올림하고, 계산 도중에는 하지 마세요. 4자리 미드마켓 환율에 작은 금액을 곱했을 때 파이프라인 중간에서 반올림하면 의미 있는 정밀도를 잃을 수 있습니다.
자주 묻는 질문
전 세계에 통화 페어는 총 몇 개 있나요? 약 180개의 활발히 거래되는 국가 통화가 있어, 이론적으로 고유 페어 수는 약 16,000개(180 × 179 / 2)입니다. 실제로는 의미 있는 유동성으로 거래되는 페어는 수백 개에 불과하며, Finexly를 포함한 대부분의 API는 170+ 통화를 노출하므로 약 14,000개의 파생 페어가 가능합니다. 대부분의 제품은 UI에서 20~50개만 지원하면 충분합니다.
세계에서 가장 많이 거래되는 통화 페어는?
EUR/USD가 가장 많이 거래되어 일일 외환 거래량의 약 22~24%를 차지합니다. USD/JPY와 GBP/USD가 그 뒤를 잇습니다.
USD/EUR과 EUR/USD는 같은 건가요?
아니요. 숫자상으로는 서로 역수(USD/EUR = 1 / EUR/USD)이지만 다른 호가입니다. 관습적인 시장 표기는 EUR/USD입니다. 금융 전문가에게 USD/EUR을 보여주면 무언가 잘못되었다고 추측합니다.
이그조틱 페어는 왜 더 위험한가요? 이그조틱 페어는 유동성이 낮은 시장 위에 있으므로 더 넓은 스프레드, 뉴스 후 더 큰 갭, 현지 정치 이벤트에 대한 더 큰 민감도, 때로는 자본 통제나 중앙은행 개입을 의미합니다. 사용 불가능하다는 뜻은 아니지만, 메이저처럼 "작은 스프레드, 매끄러운 틱 스트림"을 가정해서는 안 됩니다.
이그조틱 페어를 위해 다른 API 요금제가 필요한가요? Finexly에서는 그렇지 않습니다. 170+ 모든 통화 — 메이저, 마이너, 이그조틱 — 가 무료 요금제를 포함한 모든 요금제에서 사용 가능합니다. 요금제 간 차이는 호출량, 갱신 빈도, 히스토리 깊이이지 페어 커버리지가 아닙니다. 자세한 비교는 요금제 페이지에서 확인하세요.
환율은 얼마나 자주 갱신해야 하나요? 대부분의 사용 사례(이커머스 표시, 청구, 보고서)에서는 5~15분마다면 충분합니다. 활발한 트레이딩이나 헤지: 몇 초마다, 또는 피드를 구독. 회계 기간 마감: 일말 스냅샷 한 번이 적절합니다.
실시간 통화 페어 데이터로 시작하기
통화 페어는 FX의 언어입니다. 메이저/마이너/이그조틱에 대한 깔끔한 정신 모델과 코드 내의 정돈된 정규화 헬퍼가 갖춰지면, 이후 만들 모든 FX 기능 — 환율 변환기, 멀티 통화 체크아웃, SaaS 청구, 보고 — 가 훨씬 쉬워집니다.
프로젝트에 실시간 환율을 연결할 준비가 되셨나요? 무료 가입하고 1분 이내에 Finexly API 키를 받으세요 — 신용카드 불필요. 월 1,000회 무료 요청, 170+ 통화 접근, 그리고 전문 핀테크 제품이 사용하는 것과 동일한 미드마켓 환율을 얻습니다. 무료 요금제를 초과하면 유료 플랜이 인디 프로젝트에 적합한 가격에서 시작해 엔터프라이즈 규모까지 확장됩니다.
옵션을 먼저 비교하고 싶다면 2026년 최고의 통화 변환 API 분석을 확인하세요.
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →