1. 데이터 소스 선택:
다양한 사이트에서 국제환율 데이터를 제공하지만, API를 통한 자동화가 가능한 사이트가 유리합니다. 가장 많이 사용되는 사이트는 OANDA와 Forex입니다. 이들 사이트는 각종 환율 데이터를 JSON이나 XML 형태로 제공하며, 특히 OANDA는 다양한 통화 쌍에 대한 상세한 데이터를 제공합니다.
```python
# 예제 코드 - requests 라이브러리를 이용하여 OANDA API에서 데이터 수집
import requests
url = "https://api-fxtrade.oanda.com/v1/prices"
params = {"instruments": "EUR_USD,USD_JPY"}
headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
print(data)
```
2. 데이터 파싱 및 변환:
수집한 JSON 데이터를 파싱하여 필요한 정보만 추출합니다. 수집한 데이터에서 필요한 정보는 주로 통화 쌍 이름과 환율 값, 그리고 시간 정보입니다.
```python
# 예제 코드 - JSON 데이터 파싱
import json
json_data = '''
{
"prices": [
{"instrument": "EUR_USD", "bid": 1.2345, "ask": 1.2346, "time": "2023-10-11T09:30:00Z"},
{"instrument": "USD_JPY", "bid": 110.25, "ask": 110.26, "time": "2023-10-11T09:30:00Z"}
]
}
'''
data = json.loads(json_data)
for item in data['prices']:
instrument = item['instrument']
bid = item['bid']
ask = item['ask']
time = item['time']
print(f"Instrument: {instrument}, Bid: {bid}, Ask: {ask}, Time: {time}")
```
3. RDBMS에 저장:
추출한 데이터를 RDBMS에 저장하는 단계입니다. 여기서는 MySQL을 예로 들어 설명하겠습니다. pymysql 라이브러리를 사용해 데이터를 삽입합니다.
```python
# 예제 코드 - MySQL에 데이터 저장
import pymysql
connection = pymysql.connect(
host='localhost',
user='your_user',
password='your_password',
db='exchange_rates_db'
)
try:
with connection.cursor() as cursor:
sql = "INSERT INTO exchange_rates (instrument, bid, ask, time) VALUES (%s, %s, %s, %s)"
data_to_insert = (instrument, bid, ask, time)
cursor.execute(sql, data_to_insert)
connection.commit()
finally:
connection.close()
```
위 예시들은 OANDA API를 사용하여 국제환율 데이터를 수집하고, 이를 파싱한 후 MySQL에 저장하는 과정을 보여줍니다. 이와 같이 실시간 데이터를 수집하고 저장하려면 주기적인 스케줄링도 필요할 것입니다. `cron`이나 `schedule` 라이브러리를 활용하여 10분 단위로 데이터를 수집하고 처리할 수 있습니다.