Skip to content

happysoft2018/vue3-app

Β 
Β 

Repository files navigation

μ„œλ²„ 인프라 관리 μ‹œμŠ€ν…œ

Vue 3 + Node.js 기반의 μ„œλ²„ 인프라 λͺ¨λ‹ˆν„°λ§ 및 관리 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€.

πŸš€ μ£Όμš” κΈ°λŠ₯

πŸ” 인증 및 λ³΄μ•ˆ

  • JWT 기반 인증 μ‹œμŠ€ν…œ
  • μžλ™ 토큰 κ°±μ‹ : ν™œλ™ 쀑 무쀑단 μ‚¬μš© (8μ‹œκ°„ μ„Έμ…˜)
  • PC IP 좔적: λ³΄μ•ˆ κ°•ν™”λ₯Ό μœ„ν•œ 접속 IP 관리
  • μ—­ν•  기반 μ ‘κ·Ό μ œμ–΄ (일반 μ‚¬μš©μž/κ΄€λ¦¬μž)

πŸ‘₯ νšŒμ› 관리

  • νšŒμ› κ°€μž…/μˆ˜μ •/μ‚­μ œ
  • 승인 기반 νšŒμ› 관리
  • 등둝 PC IP ν‘œμ‹œ: νšŒμ›κ°€μž… μ‹œ μ‚¬μš©ν•œ IP 좔적
  • λΉ„λ°€λ²ˆν˜Έ μ΄ˆκΈ°ν™” 및 λ³€κ²½

πŸ–₯️ μ„œλ²„ 관리

  • μ„œλ²„ 정보 등둝 및 관리
  • 법인/곡정/ν™˜κ²½λ³„ λΆ„λ₯˜
  • λ°μ΄ν„°λ² μ΄μŠ€ μΈμŠ€ν„΄μŠ€ 관리
  • CSV 파일 μ—…λ‘œλ“œλ₯Ό ν†΅ν•œ λŒ€λŸ‰ 데이터 처리

πŸ”Œ 접속 μƒνƒœ λͺ¨λ‹ˆν„°λ§

  • DB 접속 체크: λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° μƒνƒœ 확인
  • Telnet 접속 체크: μ„œλ²„ 포트 μ ‘κ·Όμ„± 확인
  • λ‚ μ§œ/μ‹œλΆ„μ΄ˆ 필터링: μƒμ„Έν•œ 이λ ₯ 쑰회
  • μ‹€μ‹œκ°„ 접속 μƒνƒœ λŒ€μ‹œλ³΄λ“œ

πŸ“ κ²Œμ‹œνŒ μ‹œμŠ€ν…œ

  • 곡지사항 및 이슈 관리
  • 파일 첨뢀 κΈ°λŠ₯
  • λŒ“κΈ€ μ‹œμŠ€ν…œ

πŸ“Š 데이터 관리

  • μ—‘μ…€ λ‹€μš΄λ‘œλ“œ
  • μ •κ·œμ‹ 기반 데이터 μΆ”μΆœ
  • ν…Œμ΄λΈ”λͺ… μΆ”μΆœ 도ꡬ

πŸ› οΈ 기술 μŠ€νƒ

Frontend

  • βœ… Vue 3 - ν”„λ‘ νŠΈμ—”λ“œ ν”„λ ˆμž„μ›Œν¬
  • βœ… Vite - λΉŒλ“œ 도ꡬ
  • βœ… Vue Router 4 - λΌμš°νŒ…
  • βœ… Pinia - μƒνƒœ 관리
  • βœ… Tailwind CSS 4 - μŠ€νƒ€μΌλ§
  • βœ… DaisyUI 5 - UI μ»΄ν¬λ„ŒνŠΈ
  • βœ… Sass - CSS μ „μ²˜λ¦¬κΈ°

Backend

  • βœ… Node.js - λŸ°νƒ€μž„
  • βœ… Express.js - μ›Ή ν”„λ ˆμž„μ›Œν¬
  • βœ… MySQL - λ°μ΄ν„°λ² μ΄μŠ€
  • βœ… JWT - 인증
  • βœ… bcrypt - λΉ„λ°€λ²ˆν˜Έ μ•”ν˜Έν™”
  • βœ… multer - 파일 μ—…λ‘œλ“œ

πŸš€ μ„€μΉ˜ 및 μ‹€ν–‰

사전 μš”κ΅¬μ‚¬ν•­

  • Node.js (v16 이상)
  • MySQL 8.0 이상
  • npm λ˜λŠ” yarn

ν”„λ‘ νŠΈμ—”λ“œ μ„€μ •

# μ˜μ‘΄μ„± μ„€μΉ˜
npm install

# 개발 μ„œλ²„ μ‹€ν–‰
npm run dev

# λΉŒλ“œ
npm run build

λ°±μ—”λ“œ μ„€μ •

cd 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/                  # λ¦¬μ†ŒμŠ€ 파일

πŸ”§ μ£Όμš” API μ—”λ“œν¬μΈνŠΈ

인증

  • 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"

πŸ“– μ‚¬μš©μž 맀뉴얼

μžμ„Έν•œ μ‚¬μš©λ²•μ€ μ‚¬μš©μž 맀뉴얼을 μ°Έκ³ ν•˜μ„Έμš”.

μ£Όμš” μ—…λ°μ΄νŠΈ (2024.01)

  • ✨ JWT 토큰 μžλ™ κ°±μ‹ : ν™œλ™ 쀑 무쀑단 μ‚¬μš©
  • ✨ PC IP 좔적 μ‹œμŠ€ν…œ: λ³΄μ•ˆ κ°•ν™”λ₯Ό μœ„ν•œ IP 관리
  • ✨ DB 체크 필터링 κ°œμ„ : λ‚ μ§œ/μ‹œλΆ„μ΄ˆ λ‹¨μœ„ 필터링
  • πŸ”§ UI/UX κ°œμ„ : νšŒμ› 정보 ν™”λ©΄ λ ˆμ΄μ•„μ›ƒ κ°œμ„ 

πŸ”’ λ³΄μ•ˆ κΈ°λŠ₯

  • JWT 토큰 인증: λ¬΄μƒνƒœ 인증 μ‹œμŠ€ν…œ
  • μžλ™ 토큰 κ°±μ‹ : μ„Έμ…˜ 만료 λ°©μ§€
  • PC IP 좔적: 접속 이λ ₯ 관리
  • κΆŒν•œ 기반 μ ‘κ·Ό μ œμ–΄: 역할별 κΈ°λŠ₯ μ œν•œ
  • λΉ„λ°€λ²ˆν˜Έ μ•”ν˜Έν™”: bcrypt ν•΄μ‹±

🀝 κΈ°μ—¬ν•˜κΈ°

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ λΌμ΄μ„ μŠ€

This project is licensed under the MIT License.

πŸ“ž 지원

  • 기술 문의: μ‹œμŠ€ν…œ κ΄€λ¦¬μž
  • 버그 리포트: Issues νƒ­ 이용
  • κΈ°λŠ₯ μš”μ²­: Pull Request ν™˜μ˜

μ΅œμ’… μ—…λ°μ΄νŠΈ: 2024λ…„ 1μ›”

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Vue 92.5%
  • JavaScript 7.2%
  • Other 0.3%