Skip to content

khjasdf/gachaPromptV2

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– κ°€μ±  무인 판맀기 μž₯치 등둝 μ‹œμŠ€ν…œ

TypeScript 기반 무인 자판기 μž₯치 등둝 및 관리 μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. 3κ°€μ§€ λ‹€λ₯Έ μ•„ν‚€ν…μ²˜ κ΅¬ν˜„μ²΄μ™€ μ™„μ „ν•œ UI/UXλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ“‹ ν”„λ‘œμ νŠΈ κ°œμš”

μ „κ΅­ κ°μ§€μ˜ 무인 자판기 μž₯μΉ˜λ“€μ΄ 쀑앙 μ„œλ²„μ— μžλ™μœΌλ‘œ λ“±λ‘λ˜κ³ , κ΄€λ¦¬μžκ°€ 이λ₯Ό μŠΉμΈν•˜κ±°λ‚˜ κ±°λΆ€ν•  수 μžˆλŠ” μ‹œμŠ€ν…œμž…λ‹ˆλ‹€.

🎯 μ£Όμš” κΈ°λŠ₯

  • πŸ” μž₯치 μžλ™ 등둝: ν•˜λ“œμ›¨μ–΄ 정보 기반 μžλ™ 등둝
  • πŸ‘¨β€πŸ’Ό κ΄€λ¦¬μž 승인/κ±°λΆ€: JWT 기반 인증으둜 λ³΄μ•ˆ 관리
  • πŸ“Š μ‹€μ‹œκ°„ λŒ€μ‹œλ³΄λ“œ: μž₯치 μƒνƒœ λͺ¨λ‹ˆν„°λ§ 및 톡계
  • πŸ”„ μƒνƒœ 폴링: 5λΆ„ 간격 승인 μƒνƒœ 확인
  • πŸ“ˆ μ‹œκ°ν™”: 등둝 좔이 및 μƒνƒœλ³„ 뢄포 차트

πŸ—οΈ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

기술 μŠ€νƒ

  • Backend: TypeScript, NestJS/Express.js
  • Database: AWS DynamoDB
  • Message Queue: AWS SQS
  • Frontend: HTML5, Tailwind CSS, Chart.js
  • Authentication: JWT

κ΅¬ν˜„μ²΄ 비ꡐ

κ΅¬ν˜„μ²΄ ν”„λ ˆμž„μ›Œν¬ νŠΉμ§• 점수
gachaClaudeV2 Express.js μ—”ν„°ν”„λΌμ΄μ¦ˆκΈ‰ μ•„ν‚€ν…μ²˜, μ™„λ²½ν•œ 검증 ⭐⭐⭐⭐⭐ (45.29점)
gachaGptV2 NestJS λͺ¨λ˜ ν”„λ ˆμž„μ›Œν¬, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄ ⭐⭐⭐ (34.10점)
gachaGeminiV2 λ‹¨μΌνŒŒμΌ ꡐ윑용, λ›°μ–΄λ‚œ λ¬Έμ„œν™” ⭐⭐⭐ (35.58점)

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

πŸ“¦ gacha-vending-machine-system
β”œβ”€β”€ 🎨 UI/UX
β”‚   β”œβ”€β”€ dashboard.html              # κ΄€λ¦¬μž λŒ€μ‹œλ³΄λ“œ
β”‚   β”œβ”€β”€ device-registration.html    # μž₯치 등둝 ν™”λ©΄
β”‚   β”œβ”€β”€ sample-data-ui.json        # UI용 μƒ˜ν”Œ 데이터
β”‚   └── README-UI.md               # UI μ‹€ν–‰ κ°€μ΄λ“œ
β”œβ”€β”€ πŸ—οΈ Backend Implementations
β”‚   β”œβ”€β”€ gachaClaudeV2/             # Express.js κ΅¬ν˜„μ²΄ (졜우수)
β”‚   β”œβ”€β”€ gachaGptV2/                # NestJS κ΅¬ν˜„μ²΄
β”‚   └── gachaGeminiV2.ts           # λ‹¨μΌνŒŒμΌ κ΅¬ν˜„μ²΄
β”œβ”€β”€ πŸ§ͺ Testing
β”‚   β”œβ”€β”€ test-gachaClaudeV2.ts      # Express ν…ŒμŠ€νŠΈ
β”‚   β”œβ”€β”€ test-gachaGptV2.ts         # NestJS ν…ŒμŠ€νŠΈ
β”‚   β”œβ”€β”€ test-gachaGeminiV2.js      # λ‹¨μΌνŒŒμΌ ν…ŒμŠ€νŠΈ
β”‚   β”œβ”€β”€ run-all-tests.js           # 톡합 ν…ŒμŠ€νŠΈ μ‹€ν–‰κΈ°
β”‚   └── sample-data.json           # API ν…ŒμŠ€νŠΈμš© 데이터
└── πŸ“š Documentation
    β”œβ”€β”€ README.md                  # ν”„λ‘œμ νŠΈ 메인 λ¬Έμ„œ
    └── README-UI.md               # UI μ „μš© κ°€μ΄λ“œ

πŸš€ λΉ λ₯Έ μ‹œμž‘

1. UI 데λͺ¨ μ‹€ν–‰ (μΆ”μ²œ)

# 둜컬 μ„œλ²„ μ‹€ν–‰
python -m http.server 8000
# λ˜λŠ”
npx http-server

# λΈŒλΌμš°μ €μ—μ„œ 접속
http://localhost:8000/dashboard.html
http://localhost:8000/device-registration.html

2. λ°±μ—”λ“œ ν…ŒμŠ€νŠΈ μ‹€ν–‰

# Node.js ν…ŒμŠ€νŠΈ
node test-gachaGeminiV2.js

# TypeScript ν…ŒμŠ€νŠΈ (ts-node ν•„μš”)
npx ts-node test-gachaGptV2.ts
npx ts-node test-gachaClaudeV2.ts

# 전체 ν…ŒμŠ€νŠΈ 정보
node run-all-tests.js

3. μ‹€μ œ μ„œλ²„ μ‹€ν–‰ (gachaClaudeV2 - 졜우수 κ΅¬ν˜„μ²΄)

cd gachaClaudeV2
npm install
npm run dev

🎨 UI/UX κΈ°λŠ₯

πŸ“Š κ΄€λ¦¬μž λŒ€μ‹œλ³΄λ“œ

  • μ‹€μ‹œκ°„ 톡계: 전체/λŒ€κΈ°/승인/κ±°λΆ€ μž₯치 수
  • 승인 관리: μš°μ„ μˆœμœ„λ³„ μž₯치 λͺ©λ‘ 및 상세 정보
  • μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§: API, DB, 큐 μƒνƒœ 확인
  • ν™œλ™ 둜그: 등둝, 승인, κ±°λΆ€ 이λ ₯
  • 차트: 등둝 좔이 및 μƒνƒœλ³„ 뢄포

πŸ“ μž₯치 등둝 ν™”λ©΄

  • 3단계 등둝: 기본정보 β†’ μ‹œμŠ€ν…œμ •λ³΄ β†’ 확인
  • μ‹€μ‹œκ°„ 검증: IP μ£Όμ†Œ, UUID ν˜•μ‹ λ“±
  • μƒ˜ν”Œ 데이터: μžλ™ μž…λ ₯ κΈ°λŠ₯
  • μ§„ν–‰ ν‘œμ‹œ: 단계별 μ§„ν–‰ 상황

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

λ©”μ†Œλ“œ 경둜 μ„€λͺ… 인증
POST /api/devices/register μž₯치 등둝 μš”μ²­ ❌
GET /api/devices/status/:hardwareId 승인 μƒνƒœ 확인 ❌
GET /api/devices/pending λŒ€κΈ° 쀑인 μž₯치 λͺ©λ‘ βœ…
PUT /api/devices/:deviceId/approve μž₯치 승인 βœ…
PUT /api/devices/:deviceId/reject μž₯치 κ±°λΆ€ βœ…

πŸ“Š μƒ˜ν”Œ 데이터

μž₯치 등둝 μš”μ²­ μ˜ˆμ‹œ

{
  "hardwareId": "VM001SEOUL2024",
  "tenantId": "550e8400-e29b-41d4-a716-446655440001",
  "ipAddress": "192.168.1.101",
  "systemInfo": {
    "os": "Ubuntu",
    "version": "22.04.3 LTS",
    "architecture": "x86_64",
    "memory": "8GB",
    "storage": "256GB SSD"
  }
}

API 응닡 ν˜•μ‹

{
  "status": "success",
  "message": "등둝 μš”μ²­ μ™„λ£Œ",
  "data": {
    "deviceId": "dev-550e8400-e29b-41d4-a716-446655440101",
    "sqsQueueUrl": "https://sqs.ap-northeast-2.amazonaws.com/..."
  }
}

πŸ† μ•„ν‚€ν…μ²˜ 평가 κ²°κ³Ό

평가 κΈ°μ€€ (8개 ν•­λͺ©, κ°€μ€‘μΉ˜ 적용)

  1. μž…λ ₯ 검증 (1.5) - ν•„μˆ˜κ°’, ν˜•μ‹, λ²”μœ„ 검증
  2. μ—λŸ¬ 처리 (1.4) - ꡬ체적 μ˜ˆμ™Έ, HTTP μƒνƒœ μ½”λ“œ
  3. λ³΄μ•ˆ μš”μ†Œ (1.4) - 인증/인가, μ ‘κ·Ό μ œν•œ
  4. 둜직 λ””ν…ŒμΌ (1.3) - μš”κ΅¬μ‚¬ν•­ κ΅¬ν˜„, 가독성
  5. 둜직 뢄리 (1.2) - 계측 뢄리, μ˜μ‘΄μ„± μ£Όμž…
  6. API 섀계 (1.1) - RESTful, HTTP λ©”μ†Œλ“œ
  7. 응닡 ꡬ쑰 (1.0) - 일관성, ν•„λ“œ λͺ…λͺ…
  8. ν™•μž₯μ„± (0.8) - 미래 λŒ€μ‘, μ„€μ • 뢄리

μ΅œμ’… μˆœμœ„

  1. πŸ₯‡ gachaClaudeV2: 45.29점 - μ—”ν„°ν”„λΌμ΄μ¦ˆκΈ‰ 완성도
  2. πŸ₯ˆ gachaGeminiV2: 35.58점 - ꡐ윑용 μ΅œμ ν™”
  3. πŸ₯‰ gachaGptV2: 34.10점 - λͺ¨λ˜ ν”„λ ˆμž„μ›Œν¬

πŸ› οΈ 개발 ν™˜κ²½ μ„€μ •

ν•„μˆ˜ μš”κ΅¬μ‚¬ν•­

  • Node.js 18+
  • TypeScript 4.5+
  • Python 3.7+ (둜컬 μ„œλ²„μš©)

선택적 도ꡬ

  • AWS CLI (μ‹€μ œ DynamoDB/SQS 연동 μ‹œ)
  • Docker (μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ μ‹œ)
  • Postman (API ν…ŒμŠ€νŠΈμš©)

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

  1. Fork the repository
  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

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

이 ν”„λ‘œμ νŠΈλŠ” MIT λΌμ΄μ„ μŠ€ ν•˜μ— λ°°ν¬λ©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ LICENSE νŒŒμΌμ„ μ°Έμ‘°ν•˜μ„Έμš”.

πŸ‘₯ μ œμž‘μž

  • μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜: 3κ°€μ§€ κ΅¬ν˜„μ²΄ 비ꡐ 뢄석
  • UI/UX λ””μžμΈ: λ°˜μ‘ν˜• μ›Ή λŒ€μ‹œλ³΄λ“œ
  • ν…ŒμŠ€νŠΈ μ‹œλ‚˜λ¦¬μ˜€: 포괄적 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€

πŸ”— κ΄€λ ¨ 링크


⭐ 이 ν”„λ‘œμ νŠΈκ°€ 도움이 λ˜μ—ˆλ‹€λ©΄ Starλ₯Ό λˆŒλŸ¬μ£Όμ„Έμš”! ⭐

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 63.6%
  • HTML 26.9%
  • JavaScript 5.2%
  • PowerShell 1.9%
  • Shell 1.5%
  • Dockerfile 0.5%
  • CSS 0.4%