AXMP 스타일의 GPU 리소스 관리 대시보드 웹 애플리케이션입니다.
- GPU 리소스 현황 실시간 모니터링
- 메트릭 카드를 통한 시각적 데이터 표시
- 사용률 및 가용성 추적
- GPU Pool 생성, 수정, 삭제
- 프로젝트별 GPU 할당 관리
- 상태별 필터링 및 정렬
- GPU 리소스 요청 승인/거부
- 대기 중인 요청 목록 관리
- 프로젝트별 요청 추적
- Frontend: Vue 3 + Nuxt 3
- Styling: TailwindCSS
- Language: TypeScript
- Charts: Chart.js + Vue-ChartJS
- Icons: Heroicons
- UI Components: Headless UI
gpu-management-app/
├── .rules/ # 개발 규칙 및 가이드라인
│ ├── .cursorrules
│ ├── dashboard-ui-guidelines.mdc
│ ├── vue-nuxt-general-rules.mdc
│ ├── html-specific-rules.mdc
│ └── css-specific-rules.mdc
├── assets/
│ └── css/
│ └── main.css # TailwindCSS + 커스텀 스타일
├── components/
│ └── gpu/
│ └── GpuPoolModal.vue # GPU Pool 생성/편집 모달
├── composables/
│ └── useGpuApi.ts # GPU API 호출 composable
├── pages/
│ └── gpu/
│ └── dashboard.vue # GPU 관리 대시보드
├── nuxt.config.ts # Nuxt 3 설정
├── package.json # 의존성 관리
└── README.md
- Primary: Indigo (#4F46E5)
- Success: Green (#10B981)
- Warning: Yellow/Orange (#F59E0B)
- Danger: Red (#EF4444)
- Info: Blue (#3B82F6)
- 카드: 둥근 모서리, 미묘한 그림자, 컬러 보더
- 버튼: 일관된 패딩, 호버 효과, 포커스 링
- 테이블: 정렬 가능한 헤더, 줄무늬 배경
- 모달: 오버레이, 애니메이션, 접근성 지원
npm installnpm run devnpm run buildnpm run preview# .env
API_BASE_URL=http://localhost:8080/api/core/v1
BACKEND_URL=http://localhost:8080
API_SECRET=your-secret-key개발 환경에서 백엔드 API와의 통신을 위해 Nitro 프록시가 설정되어 있습니다.
GET /api/core/v1/realms/{realm}/gpus/pool-list- GPU Pool 목록 조회POST /api/core/v1/realms/{realm}/gpus/pools- GPU Pool 생성PUT /api/core/v1/realms/{realm}/gpus/pools/{poolName}- GPU Pool 수정DELETE /api/core/v1/realms/{realm}/gpus/pools/{poolName}- GPU Pool 삭제
GET /api/core/v1/realms/{realm}/gpus/count- GPU 통계 조회GET /api/core/v1/realms/{realm}/gpus/project/{project}/count- 프로젝트별 GPU 통계
GET /api/core/v1/realms/{realm}/gpus/pool-requests- GPU 요청 목록PUT /api/core/v1/realms/{realm}/gpus/pool-requests/{reqId}/approve- 요청 승인
- Vue 3 Composition API 사용
- TypeScript 타입 안전성 준수
- TailwindCSS 클래스만 사용 (CSS/style 태그 금지)
- 접근성 기능 구현 필수
- Early return 패턴 사용
- 설명적인 변수/함수명 사용
- 이벤트 핸들러:
handle접두사 (예:handleClick) - 함수 대신 const 사용:
const toggle = () => - 타입 정의 권장
tabindex,aria-label속성 추가- 키보드 네비게이션 지원
- 스크린 리더 친화적 구조
- 고대비 색상 사용
# 타입 체크
npm run type-check
# 린팅
npm run lint
# 린팅 자동 수정
npm run lint:fix이 프로젝트는 MIT 라이센스 하에 배포됩니다.
- 프로젝트 포크
- 기능 브랜치 생성 (
git checkout -b feature/AmazingFeature) - 변경사항 커밋 (
git commit -m 'Add some AmazingFeature') - 브랜치에 푸시 (
git push origin feature/AmazingFeature) - Pull Request 생성
문제가 발생하거나 질문이 있으시면 이슈를 생성해 주세요.