Python Algorithm Trading System 개발일기
파이썬은 조각 조각 찔끔 찔끔 개발해 봤을 뿐이지 하나의 프로젝트를 구성해 본 적이 없었는데, 이번에 좀 알게되었다. 대단한건 아니고, 그냥 적당히 하면 될 것 같다.ㅋ
프로젝트 구조
구조를 어떻게 가져가야 할지. 일반적인 구조는 어떻게 되는지 찾아보고 따라 가기로 했다. 늘 그랬듯이...ㅋ
ROOT
├── setup.py
└── simulator
├── __init__.py
├── module.py
└── tests
├── __init__.py
└── test_module.py
이래 저래 말이 많은것 같은데, 그냥 적당히 위와 같은 구조로 고고!
어떻게 설치하지?
일단, 프로젝트 구조는 정해졌고, 프로젝트에서 산출물이 나오면 실행하는 부분은 각자 알아서 하는 것으로ㅋㅋㅋ 실행환경은 개취에 맡기는 것이 맞는 것 같다.
알아서 하라고 하면 너무 불친절 할 수 있으니, 추천 방법에 대해서 설명을 하나 넣어야겠다. 추천이라는 말도 조금 부담스럽기는 한데, 나는 그냥 jupyter notebook
을 이용해서 실행 할까 한다. 쥬피터 설치하는 방법은 링크로 대신해야겠다.
테스트는 어떻게?
테스트 방법도 여러 가지가 있는 것 같은데, 테스트는 tests 폴더에서 python -m unittest
실행하는 것으로 끝!
근데, 막상 사용해보니 이쁘지도 않고 편리하지도 않다. pycharm이나 PTVS을 추천하던데, 둘 다 내가 지향하는 가벼운 느낌은 아니라서 혹시나 해서 VS Code 쪽을 살펴봤는데, 충분히 좋은 Extension이 제공되고 있었다!
Python extension for Visual Studio Code 당연히? 무료! 오픈소스! 프로젝트이다.
Python testing in Visual Studio Code 가이드를 보고 smtm 코드를 실행해 보면 아래와 같이 실행되는 것을 확인 할 수 있다.
venv
에 대한 설정도 쉽게 가능하다. Using Python environments in VS Code 그 뿐만 아니라 jupyter notebook
과 연결도 된다고 하니, 그건 나중에 해보자.
아, Unit Test에 대해서는 뭐 일반적인 내용이니까 따로 설명할 필요 없을것 같다. 방금 언급한 개발환경에서 다른 언어, 플랫폼의 개발환경만큼이나 일반적이고 편리하게 테스트 환경을 제공하고 있다. Unit Test는 이제 기본으로 깔고 가는 느낌.ㅎ
CI 적용하기
T.Viewer 와 마찬가지로 이번에도 Travis를 사용하려 한다. .travis.yaml
은 아래와 같이 작성해서, 고고.
unittest cli command에 대해서는 reference site를 참조 unittest — Unit testing framework
notifications:
email:
on_success: never
on_failure: change
branches:
only:
- master
- /releases\/.+/
language: python
python:
- "3.5"
# command to install dependencies
install: "pip install -r requirements.txt"
# command to run tests
script: python -m unittest discover ./tests *test.py -v
README.md
최종 README.md 는 아래와 같다.
https://github.com/msaltnet/smtm에서 확인가능.
마치며
이제 본격적으로 프로그래밍할 일만 남았다. 기대된다잉~ 기본 테스트 커밋 올려둔다.
참고
'만들기' 카테고리의 다른 글
[Double Check-02] 수정 즉시 업데이트되는 EditText in RecyclerView (0) | 2022.12.02 |
---|---|
[Double Check] 안드로이드 어플리케이션 오픈소스 프로젝트 (0) | 2022.10.20 |
[독후감] 암호화폐 자동매매 시스템 with 파이썬 - 출판 후기 (1) | 2022.03.13 |
[SMTM 개발일기] 2. 시뮬레이터 요구사항 정리 (0) | 2019.12.13 |
[SMTM 개발일기] 1. 파이썬으로 가상화폐 자동매매 시스템을 만들어보자 (1) | 2019.11.06 |
nodeMCU D1 mini 동작감지하여 스마트폰 또는 PC에 Push 알림 전달하기 (0) | 2019.04.14 |
ESP8266 nodeMCU, D1 mini 개발환경 시작하기 (0) | 2019.02.18 |
댓글