개요
최근에 관심이 있는 분야이기도하고 회귀 분석 쪽으로도 접목시킬 수 있는 장점이 있어서
오픈소스 컨트리뷰터 및 프로그램 개발을 위해 해당 오픈소스 분석 시작!
최근 정리한 오픈소스 분석 방법론을 통해 순차적으로 뜯어볼 예정이다.
(너무 어렵지만 해결했을 때의 짜릿함 기대중)
https://timmer.tistory.com/350
깃허브 내 오픈소스 코드 분석하는법 총 정리 - 순서대로만 따라하면 이해되는 오픈소스코드 분
1. 배경지식을 갖출 것정렬이라던가 검색같은데 특정 알고리즘을 사용했다면,해당 알고리즘의 작동원리 이해하고 난 후 분석하는 것이 효율적이다. 만약 해당 지식이 없이 코드로만 이해하려
timmer.tistory.com
1. 배경지식을 갖출 것
간단하게 한줄로 요약이 가능하다.
'비트코인 투자 자동화 프로그램'
2. 큰 그림을 보자

이 캡쳐 하나로도 다 담지 못하는 무지막지한 코드량이 존재한다.
300명이 넘는 contributor가 작성한 코드들이기 때문에 충분히 그럴지도...
폴더 구조 파악
그래서 폴더 하나씩 무엇을 의미하는지, 구조파악을 먼저 해보기로 했다.
주로 아래의 폴더 패키지들이 자주 쓰인다.
| 이름 | 설명 |
| commands | CLI 명령 시 해당 명령어를 읽고 코드 동작하는 함수들을 모아놓음 |
| configuration |
CLI에 필요한 config.json 파일 parsing |
| data |
데이터 백테스트 및 cache 보관 |
| enums |
상수 관리 목적 |
| exchange |
각 거래소의 함수 정리 (entry, exit 등) |
| freq_types |
상수의 타입 관리 목적 |
| loggers |
로깅 함수 |
| plugins |
지정된 pair의 선택 알고리즘 함수들 |
| resolvers |
custom 전략 관리 |
| грс |
sns 연동 함수 (telegram 등) |
| strategy |
custom 전략 인터페이스 관리 |
| templates |
단순 custom 전략 위한 템플릿 예시들 |
| util |
시간 변경 등 각종 util 함수 |
_init__.py 이란?
지금은 파이썬 버전 3.3 이후부터 자동화되어 필요없어진 _init__.py이 각 폴더명마다 있었는데,
이 개념을 한번도 보지 못하여 이해하는데 고난을 많이 겪었다.
(멍청이 그차제)
각 폴더 내에 해당 파일을 지정하면, 파이썬이 해당 파일이 있는 폴더 자체를 패키지로 인식하여,
import를 할 때 보다 편리하게
__init __ .py 내 함수들을 각각 명시하여 관리를 용이하게 할 수 있는 장점이 있다!
예시로
from freqtrade.exchange import (
timeframe_to_minutes,
)
from freqtrade.strategy.informative_decorator import informative
from freqtrade.strategy.strategy_helper import (
merge_informative_pair,
stoploss_from_absolute,
stoploss_from_open,
)
여기서 import를 할 때 ()로 감싸는 이유는, 가독성 목적
위의 정의된 폴더 내 함수를 사용하여 아래
main.py를 실행하여 전체 코드가 돌아가게 만든다.
소스코드로 공부가 될까?
단순히 쓰기만 했을 때는 몰랐는데
실제로 소스코드를 들여다보며 해당 코드의 작동방식
그리고 코드 폴더 구조 방식, 각 함수들의 네이밍 등을 확인하다보니
확실히 몰랐던 부분을 좀더 자세히 알 수 있었던 경험!
뜯어볼때는 좀 스트레스 받았는데
막상 파악하고 나니 희열감이 든다.
이런 느낌때문에 코딩이 재밌는게 아닐까!?
굿굿

나머지 문서화나 생각 정리부분은 다음 글에 계속
'개인프로젝트' 카테고리의 다른 글
| [교육용] kali linux로 와이파이 남의 와이파이 비번 해킹 (2) | 2024.10.22 |
|---|---|
| [팁] NODEJS 그리고 AWS S3 버킷생성, 파일 업로드, 파일 다운로드 기능 한번에 구현하기 - 소스코드 포함 (0) | 2024.05.09 |