Vue 3 + Node.js κΈ°λ°μ μλ² μΈνλΌ λͺ¨λν°λ§ λ° κ΄λ¦¬ μΉ μ ν리μΌμ΄μ μ λλ€.
- JWT κΈ°λ° μΈμ¦ μμ€ν
- μλ ν ν° κ°±μ : νλ μ€ λ¬΄μ€λ¨ μ¬μ© (8μκ° μΈμ )
- PC IP μΆμ : 보μ κ°νλ₯Ό μν μ μ IP κ΄λ¦¬
- μν κΈ°λ° μ κ·Ό μ μ΄ (μΌλ° μ¬μ©μ/κ΄λ¦¬μ)
- νμ κ°μ /μμ /μμ
- μΉμΈ κΈ°λ° νμ κ΄λ¦¬
- λ±λ‘ PC IP νμ: νμκ°μ μ μ¬μ©ν IP μΆμ
- λΉλ°λ²νΈ μ΄κΈ°ν λ° λ³κ²½
- μλ² μ 보 λ±λ‘ λ° κ΄λ¦¬
- λ²μΈ/곡μ /νκ²½λ³ λΆλ₯
- λ°μ΄ν°λ² μ΄μ€ μΈμ€ν΄μ€ κ΄λ¦¬
- CSV νμΌ μ λ‘λλ₯Ό ν΅ν λλ λ°μ΄ν° μ²λ¦¬
- DB μ μ 체ν¬: λ°μ΄ν°λ² μ΄μ€ μ°κ²° μν νμΈ
- Telnet μ μ 체ν¬: μλ² ν¬νΈ μ κ·Όμ± νμΈ
- λ μ§/μλΆμ΄ νν°λ§: μμΈν μ΄λ ₯ μ‘°ν
- μ€μκ° μ μ μν λμ보λ
- 곡μ§μ¬ν λ° μ΄μ κ΄λ¦¬
- νμΌ μ²¨λΆ κΈ°λ₯
- λκΈ μμ€ν
- μμ λ€μ΄λ‘λ
- μ κ·μ κΈ°λ° λ°μ΄ν° μΆμΆ
- ν μ΄λΈλͺ μΆμΆ λꡬ
- β Vue 3 - νλ‘ νΈμλ νλ μμν¬
- β Vite - λΉλ λꡬ
- β Vue Router 4 - λΌμ°ν
- β Pinia - μν κ΄λ¦¬
- β Tailwind CSS 4 - μ€νμΌλ§
- β DaisyUI 5 - UI μ»΄ν¬λνΈ
- β Sass - CSS μ μ²λ¦¬κΈ°
- β Node.js - λ°νμ
- β Express.js - μΉ νλ μμν¬
- β MySQL - λ°μ΄ν°λ² μ΄μ€
- β JWT - μΈμ¦
- β bcrypt - λΉλ°λ²νΈ μνΈν
- β multer - νμΌ μ λ‘λ
- Node.js (v16 μ΄μ)
- MySQL 8.0 μ΄μ
- npm λλ yarn
# μμ‘΄μ± μ€μΉ
npm install
# κ°λ° μλ² μ€ν
npm run dev
# λΉλ
npm run buildcd my-node-express-server
# μμ‘΄μ± μ€μΉ
npm install
# νκ²½ λ³μ μ€μ (.env νμΌ μμ±)
cp .env.example .env
# μλ² μ€ν
npm start# λ°μ΄ν°λ² μ΄μ€ μ€μ
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database
# JWT μ€μ
JWT_SECRET=your_jwt_secret
# κΈ°ν μ€μ
PORT=4000
USER_INIT_PASSWORD=μ΄κΈ°λΉλ°λ²νΈmy-vite-vue3-sass-tailwind-app/ # νλ‘ νΈμλ
βββ public/ # μ μ νμΌ
βββ src/
β βββ assets/ # μ μ 리μμ€
β β βββ icons/ # μμ΄μ½
β β βββ images/ # μ΄λ―Έμ§
β β βββ styles/ # μ€νμΌ
β βββ components/ # Vue μ»΄ν¬λνΈ
β β βββ Home/ # ν κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ ComponentsPreview/ # 미리보기 μ»΄ν¬λνΈ
β βββ router/ # Vue Router μ€μ
β βββ stores/ # Pinia μ€ν μ΄
β βββ utils/ # μ νΈλ¦¬ν°
β βββ views/ # νμ΄μ§ μ»΄ν¬λνΈ
β β βββ auth/ # μΈμ¦ κ΄λ ¨
β β βββ members/ # νμ κ΄λ¦¬
β β βββ servers/ # μλ² κ΄λ¦¬
β β βββ board/ # κ²μν
β β βββ extract/ # λ°μ΄ν° μΆμΆ
β βββ data/ # μ μ λ°μ΄ν°
βββ my-node-express-server/ # λ°±μλ
βββ routes/ # API λΌμ°νΈ
βββ middlewares/ # λ―Έλ€μ¨μ΄
βββ utils/ # μ νΈλ¦¬ν°
βββ uploads/ # μ
λ‘λλ νμΌ
βββ resources/ # 리μμ€ νμΌ
POST /api/login- λ‘κ·ΈμΈPOST /api/login/refresh-token- ν ν° κ°±μ β¨
GET /api/members- νμ λͺ©λ‘ μ‘°νPOST /api/members- νμ λ±λ‘PUT /api/members/:userid- νμ μ 보 μμ DELETE /api/members/:userid- νμ μμ
GET /api/servers- μλ² λͺ©λ‘ μ‘°νGET /api/check-server-log/db- DB μ μ μ²΄ν¬ κ²°κ³ΌGET /api/check-server-log/dates- μ²΄ν¬ λ μ§ λͺ©λ‘ β¨GET /api/check-server-log/times- μ²΄ν¬ μκ° λͺ©λ‘ β¨
GET /api/me- λ΄ μ 보 μ‘°ν (PC IP ν¬ν¨) β¨PUT /api/me- λ΄ μ 보 μμ PUT /api/me/change-password- λΉλ°λ²νΈ λ³κ²½
# νλ‘ νΈμλ
npm run dev
# λ°±μλ
cd my-node-express-server
npm run dev# νλ‘ νΈμλ λΉλ
npm run build
# λ°±μλ PM2 λ°°ν¬
cd my-node-express-server
pm2 start server.js --name "server-management"μμΈν μ¬μ©λ²μ μ¬μ©μ λ§€λ΄μΌμ μ°Έκ³ νμΈμ.
- β¨ JWT ν ν° μλ κ°±μ : νλ μ€ λ¬΄μ€λ¨ μ¬μ©
- β¨ PC IP μΆμ μμ€ν : 보μ κ°νλ₯Ό μν IP κ΄λ¦¬
- β¨ DB μ²΄ν¬ νν°λ§ κ°μ : λ μ§/μλΆμ΄ λ¨μ νν°λ§
- π§ UI/UX κ°μ : νμ μ 보 νλ©΄ λ μ΄μμ κ°μ
- JWT ν ν° μΈμ¦: 무μν μΈμ¦ μμ€ν
- μλ ν ν° κ°±μ : μΈμ λ§λ£ λ°©μ§
- PC IP μΆμ : μ μ μ΄λ ₯ κ΄λ¦¬
- κΆν κΈ°λ° μ κ·Ό μ μ΄: μν λ³ κΈ°λ₯ μ ν
- λΉλ°λ²νΈ μνΈν: bcrypt ν΄μ±
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
- κΈ°μ λ¬Έμ: μμ€ν κ΄λ¦¬μ
- λ²κ·Έ 리ν¬νΈ: Issues ν μ΄μ©
- κΈ°λ₯ μμ²: Pull Request νμ
μ΅μ’ μ λ°μ΄νΈ: 2024λ 1μ