PWA์ ํ์ด๋ธ๋ฆฌ๋ ์ค์บ๋ ์์ง์ผ๋ก ๊ตฌํํ 99% ์ ํ๋์ ์ค์๊ฐ ERP ์์คํ
How I Built a QR-Powered ERP for Garment Factories Using React, Firebase, and a Raspberry Pi ๐งตโก
AI ์์ฝ
Context
์๋ ์์ ๊ธฐ๋ก์ผ๋ก ์ธํ ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฐ ์ค์๊ฐ ๊ฐ์์ฑ ๋ถ์ฌ๋ผ๋ ๋ฌผ๋ฅ ๋ณ๋ชฉ ํ์ ๋ฐ์. ์ ์ฌ์ ๋๋ฐ์ด์ค์ ๋ถ์์ ํ ๋คํธ์ํฌ ํ๊ฒฝ์ด๋ผ๋ ๋ฌผ๋ฆฌ์ ์ ์ฝ์ผ๋ก ์ธํด ๊ธฐ์กด ์ฑ ์คํ ์ด ๊ธฐ๋ฐ์ ์ค์นํ ์๋ฃจ์ ๋์ ์ด ๋ถ๊ฐ๋ฅํ ์ํฉ.
Technical Solution
- App Store ์ค์น ์ฅ๋ฒฝ ์ ๊ฑฐ๋ฅผ ์ํด PWA(Progressive Web App) ๊ตฌ์กฐ๋ฅผ ์ฑํํ์ฌ ์ ๊ทผ์ฑ ํ๋ณด
- ์ ์ฌ์ ๊ธฐ๊ธฐ์ ์ธ์๋ฅ ํฅ์์ ์ํด BarcodeDetector API, jsQR, ZXing์ ๊ฒฐํฉํ Hybrid Scanning Engine ์ค๊ณ
- 3,000๋ผ์ธ์ Monolith ์ฝ๋๋ฅผ Domain ๊ธฐ๋ฐ์ Modular Service๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ง๋ณด์์ฑ ๊ฐ์
- FirebaseBaseService ํจํด ๋์ ์ ํตํ CRUD ํ์คํ ๋ฐ Batch Transaction ์ฒ๋ฆฌ๋ก ๋ฐ์ดํฐ ์ ํฉ์ฑ ์ ์ง
- Raspberry Pi๋ฅผ Edge Collector๋ก ๋ฐฐ์นํ์ฌ ๋คํธ์ํฌ ๋จ์ ์์๋ ๋ก์ปฌ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ๋ณด์ฅํ๋ Off-Grid ์ํคํ ์ฒ ๊ตฌํ
- Firebase Background Sync๋ฅผ ํตํ ์คํ๋ผ์ธ ๋ฐ์ดํฐ์ ์ง์ฐ ๋๊ธฐํ ์ฒ๋ฆฌ
Impact
- QR ์ฝ๋ ์ธ์ ์ ํ๋ 99% ๋ฌ์ฑ ๋ฐ ์ค์บ ์ฒ๋ฆฌ ์๋ 200ms ๋ฏธ๋ง ๊ตฌํ
- Core Service ํ์ผ ํฌ๊ธฐ 75% ๊ฐ์๋ฅผ ํตํ ๋ฒ๋ค ๋ก๋ฉ ์๋ ํฅ์
- ๋คํ ๊ณต์ฅ 60๋ ์ด์์ ๊ธฐ๊ธฐ์์ 115,370๊ฐ ์ด์์ ํผ์ค ์ค์๊ฐ ์ถ์ ์๋ฃ
Key Takeaway
ํ์ฅ ์ค์ฌ์ ์์ง๋์ด๋ง์์๋ ํ๋ คํ UI๋ณด๋ค ํ๊ฒฝ์ ์ ์ฝ(๋จผ์ง, ์ ์ฌ์ ๊ธฐ๊ธฐ, ๋คํธ์ํฌ ๋ถ์์ )์ ํด๊ฒฐํ๋ Edge Computing๊ณผ PWA์ ์ ์ฐํ ๋ฐฐํฌ ์ ๋ต์ด ์์คํ ์ ์ฑํจ๋ฅผ ๊ฒฐ์ ํจ.
์ค์ฒ ํฌ์ธํธ
1. ์ ์ฌ์ ๊ธฐ๊ธฐ ์ง์ ์ ๋จ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ Fallback ์ ๋ต์ ํฌํจํ Hybrid Engine ๊ฒํ
2. B2B ํ์ฅ ์ฑ ์ค๊ณ ์ ์ค์น ์ง์ ์ฅ๋ฒฝ์ ์ต์ํํ๋ PWA ๋์ ๊ณ ๋ ค
3. ๋คํธ์ํฌ ๋ถ์์ ๊ตฌ์ญ์ Raspberry Pi ๋ฑ Edge Device๋ฅผ ํ์ฉํ Local Sync ๊ณ์ธต ์ค๊ณ
4. ๋น๋ํด์ง ์๋น์ค ๋ ์ด์ด๋ Domain ๊ธฐ๋ฐ Modularization๊ณผ Base Service ํจํด์ผ๋ก ์ถ์ํ