* sku: Stock Keeping Unit의 약자로, 한국어로는 재고 관리 단위 또는 상품 코드 단위
<프로젝트 요약>
날씨와 유동인구 데이터를 반영하여 (소상공인) 베이커리 가맹점 SKU별 수요를 예측하고, 웹에서 그 결과를 확인하고 다운로드 가능한 시스템
📍프로젝트명
AI 기반 날씨·유동인구 연동 베이커리 SKU 수요 예측 및 시각화 웹(시스템) 개발
📍프로젝트 키워드
- 수요 예측
- POS 데이터
- SKU별 분석
- AI 서비스 웹 구축
📍Pain Point
- 계절, 날씨, 유동인구 등 외부 요인에 따른 수요 변동 예측이 어려움
- 재고 과잉 또는 부족으로 인한 손실 발생
- 기존 매장 시스템(특히 소상공인)에서 AI 기반 예측 기술 및 시각화 기능 부재
- 가맹점 입장에서 SKU별로 정확한 수요를 파악하기 어려움
📍기술 솔루션 서술
- POS 데이터, 날씨 정보, 유동인구 데이터를 결합하여
가맹점-SKU-날짜 단위의 정교한 학습 데이터셋을 구성 - 수요 예측을 위한 머신러닝 및 딥러닝 모델(XGBoost 등) 을 학습 (기간 설정이나 사용자가 설정한거에 따라서 모델을 다르게 적용시키는건 어떤지?!)
- 사용자에게 웹 인터페이스를 통해:
- 예측 결과 시각화
- 기간 및 상품별 분석 제공
- CSV 다운로드 기능 제공
- 데이터 기반 의사결정을 지원하는 웹 기반 AI 수요 예측 시스템 제공
📍구현 기술 키워드
- 머신러닝/딥러닝: XGBoost, LightGBM, LSTM (선택)
- 백엔드: Python, FastAPI, Pandas
- 프론트엔드: React, TailwindCSS, Chart.js
- 배포: Streamlit
- 데이터베이스: SQLite
- 데이터 처리: Pandas, Numpy, Sklearn
- 시각화: Recharts or Plotly
- 파일 처리: CSV 업로드/다운로드
- 버전관리: GitHub
📍사용할 소프트웨어와 구체적 명세(예시)
| 수요 예측 모델 | `XGBoost` | [https://xgboost.readthedocs.io/](https://xgboost.readthedocs.io/) |
| 머신러닝 처리 | `scikit-learn` | [https://scikit-learn.org/](https://scikit-learn.org/) |
| API 서버 | `FastAPI` | [https://fastapi.tiangolo.com/](https://fastapi.tiangolo.com/) |
| 백엔드 서버 실행 | `Uvicorn` | [https://www.uvicorn.org/](https://www.uvicorn.org/) |
| 웹 프론트엔드 | `React` | [https://reactjs.org/](https://reactjs.org/) |
| 프론트 UI | `Tailwind CSS` | [https://tailwindcss.com/](https://tailwindcss.com/) |
| 차트 시각화 | `Chart.js` or `Recharts` | [https://www.chartjs.org/](https://www.chartjs.org/), [https://recharts.org/](https://recharts.org/) |
| CSV 처리 | `Pandas`| [https://pandas.pydata.org/](https://pandas.pydata.org/) |
| 프론트 배포 | `Vercel` | [https://vercel.com/](https://vercel.com/) |
| 백엔드 배포 | `Render` | [https://render.com/](https://render.com/) |
| 버전 관리 | `GitHub` | [https://github.com/](https://github.com/) |
| 데이터 저장(옵션) | `SQLite` or `PostgreSQL` | [https://www.sqlite.org/](https://www.sqlite.org/), [https://www.postgresql.org/](https://www.postgresql.org/) |
<핵심 기술 및 소프트웨어 패키지, URL, 시나리오> + 코드 및 문장으로 작동원리 설명
| 구성 요소 | 기술 스택 | 설명 |
| AI 모델 | Python + scikit-learn / XGBoost / LSTM 등 (실험 후 가장 좋은 모델로) | 수요예측 모델 개발 (csv → 예측값) |
| 백엔드 | FastAPI or Flask, Pandas, Uvicorn | 사용자 요청 처리, AI 모델 연결 |
| 프론트엔드 | React | 사용자 인터페이스 (그래프, 테이블, 파일 업로드 등) |
| 데이터베이스 | SQLite | 유동인구/날씨/수요 결과 저장용 |
| 배포 | Streamlit (간단한 버전) / Vercel + FastAPI | 프론트+백엔드 통합 또는 분리 배포 가능 |
* 흐름
1. 사용자가 웹(프론트엔드)에서 기간, 가맹점, sku 등을 선택한다.
2. 백엔드 서버에서 입력값을 수신하고, 데이터 전처리 및 보조변수와 합친 다음 AI모델에 입력한다.
3. AI모델이 예측 결과를 반환하면, 백엔드 서버에서 예측값을 저장하고 응답한다.
4. 프론트엔드에서 해당 예측 결과 및 시각화 결과를 띄워준다.
+ 그 외 정확한 웹/앱 화면 구현은 추후 예정...
예시 페이지 흐름
- 메인 페이지 – 기간, 가맹점 선택
- 예측 수행 버튼
- 예측 결과:
- SKU별 수요예측량 테이블
- 기간별 시계열 그래프
- 데이터 다운로드 버튼 (CSV)
- (관리자용) 모델 재학습 버튼
cf. 참고

'캡스톤디자인' 카테고리의 다른 글
| 딥러닝 모델: TFT, DeepAR, N-BEATS (2) | 2025.07.08 |
|---|---|
| 수요예측을 위한 머신러닝, 딥러닝 모델 (0) | 2025.05.21 |
| 보조 데이터 분석 및 전처리 (0) | 2025.05.21 |
| 메인 데이터 분석 및 전처리 (0) | 2025.05.21 |
| [논문 리뷰] Efficient Vision-Language Pre-training by Cluster Masking (1) | 2025.05.11 |