47 lines
3.2 KiB
Markdown
47 lines
3.2 KiB
Markdown
# MMCL 스캐폴딩(뼈대) 완료 워크스루
|
|
|
|
계획한 MMCL 프로젝트의 아키텍처를 바탕으로 초기 구조 및 뼈대(Scaffold) 코드 생성을 성공적으로 완료했습니다.
|
|
|
|
## 1. 구현된 주요 컴포넌트
|
|
|
|
### 🗄️ Database
|
|
* [schema.sql](file:///c:/Users/MyName/Desktop/antigravity/MMCL(Machine Monitoring Control for LLM)/database/schema.sql): 기계 마스터 테이블(`machines`), 장비 연동 테이블(`nilm_devices`), 실시간 로그, 경광등 제어(`warning_light_control`) 테이블 설계 및 테스트용 더미 데이터.
|
|
|
|
### 🤖 Agents (Mock)
|
|
* [nilm_agent_mock.py](file:///c:/Users/MyName/Desktop/antigravity/MMCL(Machine Monitoring Control for LLM)/agents/nilm_agent_mock.py): 가상의 전력/전압 측정 데이터를 생성하여 DB에 2초 간격으로 삽입하는 모듈.
|
|
* [warning_light_agent.py](file:///c:/Users/MyName/Desktop/antigravity/MMCL(Machine Monitoring Control for LLM)/agents/warning_light_agent.py): DB의 `target_status`를 지속적으로 감지하여 "물리적 하드웨어 제어"를 시뮬레이션하고, 완료 후 `current_status`를 동기화하는 핸드쉐이크 모듈.
|
|
|
|
### ⚙️ Backend API
|
|
* [main.py](file:///c:/Users/MyName/Desktop/antigravity/MMCL(Machine Monitoring Control for LLM)/backend/main.py): FastAPI 기반 웹 서버. 프론트엔드에 실시간 전력값 및 상태를 제공하고, 자연어 처리(채팅) 요청 시 DB에 명령을 내리고 Agent의 동기화를 기다리는 핸드쉐이크 루프가 포함되어 있습니다.
|
|
|
|
### 🖥️ Frontend Web Dashboard
|
|
* [App.jsx](file:///c:/Users/MyName/Desktop/antigravity/MMCL(Machine Monitoring Control for LLM)/frontend/src/App.jsx) & [index.css](file:///c:/Users/MyName/Desktop/antigravity/MMCL(Machine Monitoring Control for LLM)/frontend/src/index.css): **Vite + React** 기반으로 제작된 대시보드.
|
|
* **디자인**: 다크 모드, Glassmorphism(반투명 유리 효과), 부드러운 애니메이션 및 그라디언트를 적용하여 세련되고 미래지향적인(Modern & Premium) UI로 구축했습니다.
|
|
|
|
---
|
|
|
|
## 2. 향후 로컬 실행 방법 가이드 (Local Verification)
|
|
|
|
> [!WARNING]
|
|
> 현재 모든 파이썬 스크립트 내부의 DB 접속 정보(`root` / `password` 등)는 임시 더미 값으로 하드코딩 되어 있습니다. 실제 로컬 MariaDB 설정에 맞춰 수정 후 실행하셔야 합니다.
|
|
|
|
1. **DB 환경 세팅**: MariaDB 클라이언트를 열어 `schema.sql` 파일을 통째로 실행합니다.
|
|
2. **백엔드 서버 켜기**:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
uvicorn backend.main:app --reload
|
|
```
|
|
3. **가상 에이전트 구동** (각각 독립된 터미널에서 실행):
|
|
```bash
|
|
python agents/nilm_agent_mock.py
|
|
python agents/warning_light_agent.py
|
|
```
|
|
4. **프론트엔드 구동**:
|
|
```bash
|
|
cd frontend
|
|
npm run dev
|
|
```
|
|
|
|
웹 브라우저에서 대시보드 주소(`http://localhost:5173`)로 접속하시면 기계별 최신 전력값과 경광등 상태가 동기화되는 것을 확인하실 수 있습니다.
|
|
채팅창에 **"에러 났어 빨간색으로 바꿔"** 등의 입력을 넣으시면 1초의 대기(하드웨어 처리 시간 모킹) 후 적용 완료 응답을 보실 수 있습니다!
|