웹 대시보드
Spec Mix 대시보드는 사양 주도 개발 워크플로를 관리하고 보기 위한 시각적 인터페이스를 제공합니다.
개요
대시보드는 프로젝트의 사양, 계획 및 작업을 아름답고 탐색하기 쉬운 인터페이스에 표시하는 경량 웹 서버입니다.
주요 기능:
- 📊 시각적 기능 개요
- 📝 마크다운 렌더링
- 🔍 빠른 탐색
- 🎨 구문 강조
- 📱 반응형 디자인
- 🔄 자동 새로고침 기능
빠른 시작
대시보드 시작
# 기본 (포트 8080)
spec-mix dashboard
# 사용자 정의 포트
spec-mix dashboard --port 3000
# 네트워크에서 접근 가능하게 만들기
spec-mix dashboard --host 0.0.0.0 --port 8080
# 브라우저 자동 열기
spec-mix dashboard --browser
대시보드 접근
시작하면 브라우저에서 다음 주소를 여세요:
http://localhost:8080
또는 사용자 정의 포트를 사용하는 경우:
http://localhost:3000
대시보드 중지
터미널에서 Ctrl+C를 누르거나 다음을 사용하세요:
spec-mix dashboard --shutdown
대시보드 뷰
기능 목록
메인 뷰는 specs/ 디렉토리의 모든 기능을 표시합니다:
┌─────────────────────────────────────────────┐
│ Spec Mix Dashboard │
├─────────────────────────────────────────────┤
│ │
│ Features │
│ │
│ ● 1-user-auth [Specified] │
│ ● 2-payment [Planned] │
│ ● 3-dashboard [In Progress] │
│ ○ 4-reports [Not Started] │
│ │
└─────────────────────────────────────────────┘
표시되는 정보:
- 기능 번호 및 이름
- 현재 상태
- 다음에 대한 빠른 링크:
- 사양 (
spec.md) - 계획 (
plan.md) - 작업 (
tasks.md) - 기타 문서
- 사양 (
상태 표시기:
- 🟢 녹색 - 완료
- 🟡 노란색 - 진행 중
- 🔵 파란색 - 계획됨
- ⚪ 회색 - 시작하지 않음
문서 뷰어
전체 마크다운 렌더링으로 문서를 보려면 클릭하세요:
기능:
- 목차
- 구문 강조
- 코드 블록 포맷팅
- 링크 탐색
- 이미지 표시
- 테이블 렌더링
키보드 단축키:
←- 기능 목록으로 돌아가기Esc- 문서 닫기
명령 옵션
기본 옵션
spec-mix dashboard [OPTIONS]
| 옵션 | 설명 | 기본값 |
|---|---|---|
--port |
포트 번호 | 8080 |
--host |
호스트 주소 | localhost |
--browser |
브라우저 자동 열기 | false |
--shutdown |
실행 중인 대시보드 중지 | - |
예제
# 포트 3000에서 실행
spec-mix dashboard --port 3000
# 팀(네트워크)에서 접근 가능하게 만들기
spec-mix dashboard --host 0.0.0.0
# 브라우저에서 자동 열기
spec-mix dashboard --browser
# 자동 열기와 함께 사용자 정의 포트
spec-mix dashboard --port 5000 --browser
사용 사례
개발 중
작업하는 동안 대시보드를 실행 상태로 유지:
# 터미널 1: 대시보드
spec-mix dashboard
# 터미널 2: 개발
cd specs/5-new-feature
# 사양 작업...
# http://localhost:8080에서 브라우저로 업데이트 보기
팀 데모
대시보드를 보여주는 화면 공유:
- 대시보드 시작:
spec-mix dashboard --browser - 기능 개요로 이동
- 사양을 클릭하여 보기
- 진행 상황 및 상태 표시
상태 검토
스탠드업 또는 계획 중 사용:
# 대시보드 시작
spec-mix dashboard --browser
# 각 기능의 상태 검토
# 진행 중인 항목을 클릭하여 보기
# 차단 요소 식별
원격 접근
원격 팀과 대시보드 공유:
# 컴퓨터에서 (먼저 IP 확인)
spec-mix dashboard --host 0.0.0.0 --port 8080
# 팀 멤버는 다음을 통해 접근:
# http://YOUR_IP:8080
보안 참고: 신뢰할 수 있는 네트워크에서만 --host 0.0.0.0을 사용하세요.
대시보드 구조
프로젝트 요구사항
대시보드는 다음 구조를 예상합니다:
your-project/
├── specs/
│ ├── 1-feature-one/
│ │ ├── spec.md
│ │ ├── plan.md
│ │ └── tasks.md
│ └── 2-feature-two/
│ ├── spec.md
│ └── plan.md
└── .spec-mix/
└── memory/
└── constitution.md
상태 감지
상태는 spec.md에서 추출됩니다:
**Status**: In Progress
인식되는 상태:
Not Started(시작하지 않음)Specified(사양 작성됨)Planned(계획됨)In Progress(진행 중)In Review(검토 중)Completed(완료)Blocked(차단됨)On Hold(보류)
문서 발견
대시보드는 자동으로 다음을 찾습니다:
specs/의 모든 디렉토리- 각 기능의 모든
.md파일 .spec-mix/memory/의 헌법
기술 세부사항
아키텍처
- 백엔드: Python
http.server - 프론트엔드: 바닐라 JavaScript
- 마크다운: marked.js 라이브러리
- 강조: highlight.js
- 스타일링: 사용자 정의 CSS
파일 위치
src/specmix/
├── dashboard.py # 서버 로직
├── dashboard_command.py # CLI 명령
└── static/
└── dashboard/
├── index.html # 메인 페이지
├── app.js # 프론트엔드 로직
└── styles.css # 스타일링
API 엔드포인트
대시보드는 간단한 API를 제공합니다:
GET / # 메인 페이지
GET /api/features # 모든 기능 목록
GET /api/feature/{name} # 기능 세부정보 가져오기
GET /api/document/{feature}/{file} # 문서 내용 가져오기
GET /api/shutdown # 서버 중지
데이터 흐름
브라우저 → JavaScript → API 엔드포인트 → Python → 파일 시스템
← ← ←
사용자 정의
스타일링
src/specmix/static/dashboard/styles.css 편집:
/* 색상 구성표 변경 */
:root {
--primary-color: #0066cc;
--background: #ffffff;
--text-color: #333333;
}
기능 추가
src/specmix/static/dashboard/app.js 편집:
// 사용자 정의 기능 추가
async function loadCustomData() {
// 코드 작성
}
사용자 정의 템플릿
사용자 정의 문서 템플릿 생성:
- 미션 템플릿에 템플릿 추가
- 대시보드가 자동으로 발견
- 기능 문서 목록에 표시
문제 해결
대시보드가 시작되지 않음
# 포트가 사용 중인지 확인
lsof -i :8080
# 다른 포트 사용
spec-mix dashboard --port 8081
기능이 표시되지 않음
# specs 디렉토리가 존재하는지 확인
ls specs/
# 디렉토리 명명 확인 (숫자-이름 형식이어야 함)
ls specs/ | grep -E '^[0-9]+-'
문서가 렌더링되지 않음
- 마크다운 파일이 존재하는지 확인
- 파일 인코딩이 UTF-8인지 확인
- 마크다운의 구문 오류 확인
다른 컴퓨터에서 접근할 수 없음
# 올바른 호스트를 사용하는지 확인
spec-mix dashboard --host 0.0.0.0
# 방화벽 설정 확인
# 네트워크 연결 확인
ping YOUR_IP
포트가 이미 사용 중
# 포트를 사용하는 프로세스 찾기
lsof -i :8080
# 프로세스를 종료하거나 다른 포트 사용
spec-mix dashboard --port 8081
고급 사용
CI/CD와 통합
CI/CD를 위한 정적 HTML 생성:
# 향후 기능
spec-mix dashboard --export ./dashboard-static/
자동화된 테스트
# 대시보드가 올바르게 시작되는지 테스트
spec-mix dashboard --test
# API 엔드포인트 확인
curl http://localhost:8080/api/features
성능
대시보드는 다음에 최적화되어 있습니다:
- 프로젝트: 최대 100개 기능
- 문서: 각각 최대 1MB
- 동시 사용자: 최대 10명
더 큰 프로젝트의 경우 다음을 고려하세요:
- 여러 프로젝트로 나누기
- 정적 사이트 생성 사용
- 캐싱 구현
보안 고려사항
로컬 개발
로컬 사용을 위한 안전한 기본값:
# 컴퓨터에서만 접근 가능
spec-mix dashboard # localhost 사용
팀 공유
팀과 공유할 때:
# 신뢰할 수 있는 네트워크에서만
spec-mix dashboard --host 0.0.0.0
하지 말아야 할 것:
- 공용 인터넷에 노출
- 신뢰할 수 없는 네트워크에서 사용
- 민감한 사양을 공개적으로 공유
해야 할 것:
- 원격 접근에 VPN 사용
- 인증 구현 (향후 기능)
- 공유 전에 사양 검토
향후 기능
계획된 개선사항:
- 🔐 인증/권한 부여
- 📊 진행 차트 및 메트릭
- 🔍 전체 텍스트 검색
- 📤 PDF/HTML로 내보내기
- 🎨 테마 및 사용자 정의
- 🔄 실시간 파일 감시
- 💬 댓글 및 주석
- 📱 모바일 앱
모범 사례
개발 중
- 백그라운드에서 대시보드 실행 유지
- 문서 저장 후 새로고침
- 빠른 참조용으로 사용
- 페어 프로그래밍을 위해 URL 공유
검토용
- 스프린트 검토에 사용
- 기능을 시각적으로 살펴보기
- 이해관계자에게 진행 상황 표시
- 사양에 대한 피드백 받기
문서용
- 살아있는 문서로 사용
- 새 팀 멤버와 공유
- 계획 중 참조
- 완료된 기능 보관