개발 환경 구축
Streamlit 개발 환경 구축 가이드
개요
본 문서는 자동 주식 매매 프로그램 개발을 위한 Python 및 Streamlit 개발 환경을 설정하는 절차를 안내합니다. Streamlit은 빠르고 쉽게 데이터 앱을 구축할 수 있는 웹 프레임워크로, 본 프로젝트의 핵심 UI/UX를 담당합니다.
1. 프로젝트 폴더 구조
기능별로 로직을 분리하여 유지보수를 쉽게 하고, 명시된 주요 기능(스크랩, 매매, UI 표시)을 명확히 구분했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
stock_trading_app/
├── .env # (중요) 증권사 API Key, 계정 정보 등 보안 파일
├── .gitignore # git에 올리지 않을 파일 목록 (.env, venv 등)
├── requirements.txt # 설치할 라이브러리 목록
├── main.py # [메인] Streamlit 앱 실행 파일 (UI 진입점)
├── config.py # 상수, 종목 코드 리스트, 전역 설정 관리
├── modules/ # [백엔드] 핵심 로직 모듈 폴더
│ ├── __init__.py
│ ├── scraper.py # [기능 1] Yahoo Finance 등 정보 수집/정리
│ ├── trader.py # [기능 3] 증권사 API 연동 및 매수/매도 주문 실행
│ └── portfolio.py # [기능 4] 손익 계산 및 수익률 분석 로직
└── ui/ # [프론트] UI 컴포넌트 분리 (선택 사항)
├── sidebar.py # 사이드바 설정 UI
├── portfolio_ui.py # portfolid UI
└── dashboard.py # 메인 대시보드 그래프/차트 UI
- main.py: 프로그램의 시작점입니다. 여기서 Streamlit 화면을 그리고 modules/에 있는 로직을 호출합니다.
- modules/: UI 코드와 비즈니스 로직(매매, 크롤링)을 분리하여 코드가 복잡해지는 것을 막습니다.
- .env: 증권사 API 키는 절대 코드에 직접 적지 않고 별도 관리해야 합니다.
2. Python 설치
Streamlit은 Python 기반이므로, 최신 버전의 Python을 설치해야 합니다.
Windows
- Python 다운로드: 공식 웹사이트()에서 Python Date 버전 (3.8 이상 권장)을 다운로드합니다.
- 설치 시 주의 사항: 설치 마법사 실행 시, 반드시 “Add Python to PATH” 옵션을 선택해야 합니다.
Windows에서도 WSL을 사용하면 리눅스에서 처럼 개발할 수도 있습니다.
- Python 설치: sudo apt-get install python3
- Python link 생성 : sudo ln -s /usr/bin/python3 /usr/bin/python
python 명령어로도 python 실행 가능하도록 link 생성 - 가상 환경 설치 : apt install python3.10-venv
python3.10 -> 앞서 설치한 Python 버전에 맞춰주세요
3. 가상 환경 설정 (Virtual Environment)
프로젝트 별 종속성을 분리하고 관리하기 위해 가상 환경을 설정하는 것이 좋습니다.
- 가상 환경 생성: 프로젝트 폴더 내에서 다음 명령어를 실행합니다.
1
python -m venv .venv
- 가상 환경 활성화: 운영체제에 따라 다음 명령어를 실행합니다.
| OS | 명령어 |
|---|---|
| Windows | .\.venv\Scripts\activate |
| macOS/Linux | source .venv/bin/activate |
4. 필수 라이브러리 설치
가상 환경을 활성화한 후, Streamlit을 포함한 프로젝트에 필요한 핵심 라이브러리를 설치합니다. requirements.txt 파일을 생성하여 아래 내용을 저장하거나, 직접 설치하세요.
requirements.txt
1
2
3
4
5
6
streamlit
pandas
yfinance
plotly
python-dotenv
schedule
- streamlit: 웹 UI/UX 개발을 위한 핵심 프레임워크.
- pandas: 데이터 처리 및 분석을 위한 필수 라이브러리.
- yfinance: Yahoo Finance API를 통해 주식 데이터를 쉽게 가져오는 데 사용.
- plotly: 대시보드용 인터랙티브 차트 (Streamlit 내장 차트보다 강력함)
- python-dotenv: API 키 보안 관리
- schedule (선택): 정해진 시간에 작업을 수행하기 위한 스케줄러
라이브러리 설치
1
pip install -r requirements.txt
5. Streamlit 설치 확인 및 실행
설치가 완료되면, 간단한 테스트 앱을 실행하여 환경 설정을 확인합니다.
- 테스트 파일 생성: main.py 파일을 생성하고 다음 코드를 작성합니다.
1
2
3
4
5
6
7
8
9
10
11
import streamlit as st
import yfinance as yf
st.title("📈 자동 주식 매매 시스템")
st.write("설정된 종목의 실시간 시세를 모니터링합니다.")
ticker = st.text_input("종목 코드 입력 (예: AAPL, 005930.KS)", "AAPL")
if st.button("조회"):
data = yf.Ticker(ticker).history(period="1d")
st.dataframe(data)
st.line_chart(data['Close'])
- Streamlit 앱 실행: 다음 명령어를 실행합니다.
1
streamlit run main.py
- 결과 확인: 명령어를 실행하면 웹 브라우저가 자동으로 열리며, http://localhost:8501에서 앱 화면을 확인할 수 있습니다.
WSL에서도 vi로 편집을 할 수 있지만, 손에 익지 않으면 아무래도 코딩이 힘들 수 있습니다. 아래 명령어를 입력하면 WSL에서의 현재 위치로 탐색기가 열립니다.
1
explorer.exe .
Visual Studio Code나 좋아하는 편집기로 코딩을 하면 됩니다.
6. 개발 환경 설정 완료
이제 Streamlit 기반의 자동 주식 매매 프로그램 개발을 위한 환경 구축이 완료되었습니다. 자세한 개발 계획은 File 문서를 참고하시기 바랍니다.
궁금한 점은 백흠경 에게 문의하십시오.