93  환율 계산기 (Currency Converter)

현재 시장 환율을 가져와서 한 통화에서 다른 통화로 변환해 주는 스크립트를 작성해 봅시다. 환율 정보를 실시간으로 수집하거나 주기적으로 업데이트되는 API를 활용하여 신뢰할 수 있는 계산기를 만드는 것이 목표입니다.

이 프로젝트는 웹 스크래핑이나 API 사용법을 익히고, 수치 데이터를 정확하게 처리하는 방법을 배울 수 있는 훌륭한 과제입니다. 사용자가 원하는 통화 쌍을 입력하면 현재 환율을 적용하여 결과값을 즉시 보여주는 기능을 구현해 보세요.

93.1 주요 개발 포인트

  • 환율 데이터 수집: 웹 스크래핑(BeautifulSoup) 또는 금융 API(ExchangeRate-API, Fixer.io 등)를 통해 최신 데이터를 가져옵니다.
  • 다양한 통화 지원: KRW, USD, EUR, JPY 등 주요 통화뿐만 아니라 전 세계의 다양한 통화를 포함합니다.
  • 수수료 및 마진 계산: 실제 환전 시 적용되는 수수료나 환전 마진을 설정할 수 있는 기능을 추가합니다.
  • 시각화 (History Chart): 과거의 환율 데이터를 가져와 기간별 환율 변동 추이를 그래프로 보여줍니다.

93.2 Python 구현 예시 (간단한 환율 변환기)

import requests

def convert_currency(amount, from_curr, to_curr):
    """
    Open Exchange Rates API와 같은 무료 서비스를 가정하여 환율을 변환합니다.
    (실제 구현 시 API 키가 필요할 수 있습니다)
    """
    print(f"{amount} {from_curr} -> {to_curr} 변환 시도 중...")
    
    # 예시: 무료 API 엔드포인트 활용 (가상 API)
    url = f"https://api.exchangerate-api.com/v4/latest/{from_curr}"
    
    try:
        response = requests.get(url)
        data = response.json()
        
        rates = data.get('rates', {})
        if to_curr in rates:
            rate = rates[to_curr]
            converted = amount * rate
            print(f"현재 환율: 1 {from_curr} = {rate:.2f} {to_curr}")
            print(f"결과: {amount} {from_curr} = {converted:.2f} {to_curr}")
            return converted
        else:
            print(f"지원되지 않는 통화입니다: {to_curr}")
    except Exception as e:
        print(f"오류 발생: {e}")
    return None

if __name__ == "__main__":
    # 100 달러가 한국 돈으로 얼마인지 계산 테스트
    amount_to_convert = 100
    source_currency = "USD"
    target_currency = "KRW"
    
    convert_currency(amount_to_convert, source_currency, target_currency)