파이썬 암호화폐 거래 패키지 개발 프로젝트: 1. DB
Dec. 5, 2021, 10:52 p.m.
이번에 구현한 모듈은 바로 DB 입니다. DB모듈은 인터넷에 있는 다양한 정보들을 받아와 데이터베이스에 저장하는 기능을 담당하는 Updater와 이를 다시 읽어오는 Reader로 구성되어 있습니다.
지금까지 구현된 구조는 아래와 같습니다.
DB
-> Readers
-->Bithumb.py
-> Updaters
-->Bithumb.py
->Modules.py(Updater, Reader)
기본적으로 이 모듈은 Updater로 저장하고, Reader로 읽는 흐름으로 사용하면 됩니다.
1. Updater 클래스, Updaters
먼저 Modules.py의 Updater 클래스를 만듭니다. Updater(host, user, password, db)
기본적으로 mysql 데이터베이스에 저장하는 것을 가정하였으므로 초기화할때 데이터를 저장할 mysql 데이터베이스 정보를 넣어줍니다.
Updaters에는 다양한 데이터들을 저장할 수 있는 클래스가 구현되어 있습니다. 지금은 빗썸에서의 시계열 데이터(Bithumb.py)만 구현되어있지만요... Bithumb.ohlcv_krw()
는 빗썸 원화 마켓에서의 모든 코인의 최근 차트 데이터를 모두 받아옵니다.
해당 클래스를 초기화 한다음 Updater.add()
메서드로 Updater에 추가해 줍니다. 저장할 데이터들을 다 추가했다면 주기적으로 Updater.update()
를 실행하여 데이터베이스에 해당 데이터들을 저장합니다. 이를 코드로 한번에 나타내면 아래와 같습니다.
from InvestJelly.DB import Updater
from InvestJelly.DB.Updaters import Bithumb
updater = Updater('sql 주소', 'sql 계정', 'sql 비밀번호', '저장할 데이터베이스 이름')
b = Bithumb.ohlcv_krw(intervals=['24h', '12h']) #24시간봉, 12시간봉 데이터만 다운로드
updater.add(b)
updater.summary()
# updater.update() #업데이트 진행
Updater.summary()
를 통해 현재 Updater가 어떤 데이터들을 업데이트 하는지 볼 수 있습니다. 위의 코드를 실행해보면 아래와 같이 나옵니다.
---------------------------------------------------------------------------------------------
Bithumb ohlcv_krw ['24h', '12h']
---------------------------------------------------------------------------------------------
이제 Updater.update()
를 통해 실제 업데이트를 진행합니다. 네트워크 환경에 따라 시간이 좀 걸립니다.