๐ญ Digital Twin ๊ณต๊ธ๋ง ๋ฆฌ์คํฌ ๋ถ์ ๋์๋ณด๋ (Smart Factory DSS)
โ๋ฐ์ดํฐ๋ฅผ ๋์ด, ์์ฌ๊ฒฐ์ ์ ํ์ ์ผ๋กโ
์ ์กฐ์
ํ์ฅ์ ๋ถํ์ค์ฑ(Uncertainty)์ ํต์ ๊ฐ๋ฅํ ๋ฆฌ์คํฌ(Risk)๋ก ๋ณํํ๋ Digital Twin ๊ธฐ๋ฐ ์์ฌ๊ฒฐ์ ์ง์ ์์คํ
(DSS)์
๋๋ค.
๐ ์จ๋ผ์ธ ๋ฐ๋ชจ
[!NOTE]
Streamlit Community Cloud ๋ฐฐํฌ URL์ ์ด๊ธฐ ๋ฐฐํฌ ํ ์
๋ฐ์ดํธ๋ฉ๋๋ค.
1. ํ๋ก์ ํธ ์๊ฐ (Overview)
๊ธ๋ก๋ฒ ๊ณต๊ธ๋ง ์ด์๋ ๋ ์ด์ ์์ธก ๋ถ๊ฐ๋ฅํ ์ฌ๋์ด ์๋๋๋ค. ๋ณธ ํ๋ก์ ํธ๋ ํํ์์คํ
๊ณผ ๊ฐ์ ์ ์กฐ ๊ธฐ์
์ด ์ง๋ฉดํ ๋ถํ ์๊ธ ๋ถ์์ ๊ณผ ์์์ฌ ๊ฐ๊ฒฉ ๋ณ๋์ด ์์ฐ ๋ผ์ธ๊ณผ ์์
์ด์ต์ ๋ฏธ์น๋ ์ํฅ์ ์ค์๊ฐ์ผ๋ก ์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
๋จ์ํ ํํฉ ๋ชจ๋ํฐ๋ง์ ๋์ด, โWhat-Ifโ ์๋๋ฆฌ์ค ๋ถ์์ ํตํด ์ต์ ์ ๋์ ์ ๋ต์ ์๋ฆฝํ ์ ์๋๋ก ๋์ต๋๋ค.
๐ฏ ํต์ฌ ๊ฐ์น & ๊ธฐ๋ฅ
- What-If Simulation: โ์์์ฌ ๊ฐ๊ฒฉ์ด 20% ์ค๋ฅด๋ฉด ์์
์ด์ต์ ์ผ๋ง๋ ๊ฐ์ํ๋๊ฐ?โ์ ๊ฐ์ ๊ฐ์ ์ ์ฆ์ ๊ฒ์ฆ.
- Real-time DSS: ๋ณต์กํ ์์ค ๊ณ์ฐ์ ์๋ํํ์ฌ 3์ด ์ด๋ด์ ๊ฒฝ์์ง์ด ํ์ธ ๊ฐ๋ฅํ ํต์ฌ ์งํ(KPI) ์ ๊ณต.
- Cost-Effective Architecture: ๊ณ ๊ฐ์ ์์ฉ ์๋ฃจ์
์์ด ์คํ์์ค(Python Ecosystem)๋ง์ผ๋ก ์ํฐํ๋ผ์ด์ฆ๊ธ ๋ก์ง ๊ตฌํ.
2. ์์ง๋์ด๋ง ์ญ๋ (Engineering Highlights)
์ด ํ๋ก์ ํธ๋ ๋จ์ํ ๊ตฌํ์ ๋์ด, ์ง์ ๊ฐ๋ฅํ ์ํํธ์จ์ด ์ํคํ
์ฒ์ ์์ ์ฑ์ ์ต์ฐ์ ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
๐๏ธ SOLID ์ํคํ
์ฒ ์ค๊ณ
๋ณํํ๋ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ(์๋ก์ด ๋ฆฌ์คํฌ ์๋๋ฆฌ์ค ๋ฑ)์ ์ ์ฐํ๊ฒ ๋์ํ๊ธฐ ์ํด Layered Architecture์ SOLID ์์น์ ์ฒ ์ ํ ์ค์ํ์ต๋๋ค.
- OCP (Open-Closed Principle): ์๋ก์ด ์๋ฎฌ๋ ์ด์
๋ก์ง(์: ํ์จ ๋ณ๋) ์ถ๊ฐ ์ ๊ธฐ์กด ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ
ISimulationStrategy๋ฅผ ๊ตฌํํ ํด๋์ค๋ง ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.
- DIP (Dependency Inversion Principle): UI๋ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ฒด๊ฐ ์๋ ์ถ์ํ๋ ์ธํฐํ์ด์ค(Service/Repository)์ ์์กดํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ท์ต๋๋ค.
โ
TDD (Test-Driven Development)
๋ณต์กํ ์๋ฎฌ๋ ์ด์
๊ณ์ฐ ๋ก์ง์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด TDD๋ฅผ ๋์
ํ์ต๋๋ค.
- Red-Green-Refactor ์ฌ์ดํด์ ์ค์ํ์ฌ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง(Domain Layer)์ ๋ํด 100% ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋ฌ์ฑํ์ต๋๋ค.
- CI(GitHub Actions)๋ฅผ ํตํด ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์๋์ผ๋ก ์ ํฉ์ฑ์ ๊ฒ์ฆํฉ๋๋ค.
โ๏ธ Serverless & Cost Optimization
- Stlite (WASM) ๊ธฐ์ ์ ๋์
ํ์ฌ Python ๋ฐฑ์๋ ์๋ฒ ์์ด ๋ธ๋ผ์ฐ์ (Client-side)์์ ์๋ฎฌ๋ ์ด์
์์ง์ด ๊ตฌ๋๋ฉ๋๋ค.
- ์ด๋ฅผ ํตํด ํธ์คํ
๋น์ฉ์ 0์์ผ๋ก ์ ๊ฐ(GitHub Pages ํ์ฉ)ํ๋ฉด์๋ ๋์ ๋ณด์์ฑ๊ณผ ์ ๊ทผ์ฑ์ ํ๋ณดํ์ต๋๋ค.
3. ๊ธฐ์ ์คํ (Tech Stack)
- Language: Python 3.10+
- Frontend/UI: Streamlit
- Core Logic: NumPy, Pandas
- Data Visualization: Plotly Interactive Charts
- Testing: Pytest
- CI/CD: GitHub Actions
- Deployment: Stlite (WebAssembly) -> GitHub Pages
4. ์คํ ๋ฐ ํ
์คํธ (How to Run)
์จ๋ผ์ธ์์ ์คํ (๊ถ์ฅ)
- Streamlit Community Cloud ๋์๋ณด๋์ ์ ์
- ์ข์ธก ์ฌ์ด๋๋ฐ์์ ์๋ฎฌ๋ ์ด์
๋ณ์ ์กฐ์
- ์ค์๊ฐ์ผ๋ก ๊ณต๊ธ๋ง ๋ฆฌ์คํฌ ๋ถ์ ํ์ธ
๋ก์ปฌ ํ๊ฒฝ ์คํ
# 1. ๋ ํฌ์งํ ๋ฆฌ ํด๋ก
git clone https://github.com/ldw188918-hue/Project.git
cd Project
# 2. ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ (Windows)
python -m venv venv
venv\Scripts\activate
# 3. ์์กด์ฑ ์ค์น
pip install -r requirements.txt
# 4. ๋์๋ณด๋ ์คํ
streamlit run src/presentation/dashboard.py
ํ
์คํธ ์คํ
# ๋จ์ ํ
์คํธ ์ํ
pytest tests/
๋ณธ ํ๋ก์ ํธ๋ฅผ ์ง์ ๋ฐฐํฌํ๋ ค๋ฉด:
- GitHub ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ณธ์ธ ๊ณ์ ์ผ๋ก fork
- Streamlit Community Cloud์ ์ ์ (๋ฌด๋ฃ)
- GitHub ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ
- โNew appโ ํด๋ฆญ
- Repository ์ ํ:
your-username/Project
- Main file path:
src/presentation/dashboard.py
- โDeploy!โ ํด๋ฆญ
๋ฐฐํฌ ํ ์์ฑ๋ URL์ README.md์ ์
๋ฐ์ดํธํ์ธ์.
Developed by [Your Name] for Portfolio Demonstration.