task-master-monitoring
Version:
Project task dashboard monitoring tool with visualization and management features
520 lines (404 loc) • 19.8 kB
Markdown
# Task Master AI - 프로젝트 대시보드
[](https://www.npmjs.com/package/task-master-monitoring)
[](https://opensource.org/licenses/MIT)
React 기반의 고급 프로젝트 작업 관리 대시보드 애플리케이션입니다. 작업 시각화, 상태 관리, 진행률 추적, 메모 기능을 제공하는 풀스택 솔루션입니다.
## 🚀 개발 동기
기존 CLI 기반의 task-master-ai를 사용하면서 겪었던 불편함을 해결하기 위해 개발되었습니다:
### 🔍 **문제점**
- **작업 추가 시 ID 혼란**: 중간에 새로운 작업을 추가하면 ID가 큰 숫자로 할당되어 전체적인 작업 순서 파악이 어려움
- **의존성 관리의 어려움**: 작업 간의 연관관계와 선후 관계를 직관적으로 파악하기 힘듦
- **진행 상황 추적의 한계**: 현재 해야 할 작업이 전체 흐름에서 어떤 위치에 있는지 명확하지 않음
### 💡 **해결책**
- **지능형 작업 정렬**: 의존성 기반 토폴로지 정렬로 작업을 논리적 순서대로 배치
- **시각적 워크플로우**: 다이어그램 뷰로 작업 흐름과 의존성 관계를 한눈에 파악
- **직관적인 작업 배치**: 새로 추가된 작업도 의존성에 따라 적절한 위치에 자동 배치
이를 통해 **"지금 무엇을 해야 하는가?"** 와 **"이 작업이 전체 프로젝트에서 어떤 의미인가?"** 를 쉽게 파악할 수 있습니다.
## 🎥 시연 영상
[](https://youtu.be/Q2eTvkpq8Ds)
**[📺 Task Master Monitoring 시연 영상 보기](https://youtu.be/Q2eTvkpq8Ds)**
실제 사용 방법과 주요 기능들을 영상으로 확인해보세요!
## 📑 목차
- [빠른 시작](#-빠른-시작)
- [주요 기능](#-주요-기능)
- [기술 스택](#-기술-스택)
- [설치 및 실행](#-설치-및-실행)
- [프로젝트 구조](#-프로젝트-구조)
- [사용 방법](#-사용-방법)
- [API 문서](#-api-엔드포인트)
- [데이터 구조](#-데이터-구조)
- [문제 해결](#-문제-해결)
- [FAQ](#-faq)
- [최근 업데이트](#-최근-업데이트-내역-v140)
- [기여하기](#-기여)
## ⚡ 빠른 시작
### 글로벌 설치 (추천)
```bash
# 1. 패키지 설치
npm install -g task-master-monitoring
# 2. 실행
tmm
# 3. 브라우저에서 http://localhost:3000 접속
```
### 개발자 모드
```bash
# 1. 저장소 클론
git clone https://github.com/chanp5660/task-master-monitoring.git
cd task-master-monitoring
# 2. 의존성 설치
npm install
# 3. 개발 서버 실행
npm run dev
```
> **💡 팁**: 첫 실행 시 샘플 JSON 데이터를 붙여넣기하여 즉시 기능을 테스트해보세요!
## 🌟 주요 기능
<table>
<tr>
<td width="50%">
### 📊 **대시보드 시각화**
- 🎯 **3가지 뷰 모드**: Cards, List, Diagram
- 📈 **의존성 다이어그램**: React Flow 기반 시각화
- 📊 **실시간 진행률**: 완료율 및 통계 추적
- 🔍 **스마트 필터링**: 상태/우선순위별 검색
- 🔄 **토폴로지 정렬**: 의존성 기반 자동 정렬
### 🔧 **작업 관리**
- ✅ **상태 워크플로**: pending → done 완료 흐름
- 🚨 **우선순위 체계**: 4단계 우선순위 관리
- 📋 **하위 작업**: 서브태스크 및 진행률 표시
- 🔗 **의존성 추적**: 작업 간 연관관계 관리
- 📝 **상세 정보**: 설명, 테스트 전략 등
</td>
<td width="50%">
### 📝 **메모 시스템**
- 📌 **태스크별 메모**: 개별 작업 메모 관리
- 📋 **대시보드 메모**: 프로젝트 전체 메모
- 💾 **자동 저장**: 실시간 백엔드 동기화
- 🗂️ **프로젝트별 분리**: 독립적 메모 공간
### 📁 **데이터 관리**
- 📝 **JSON 직접 입력**: 즉시 데이터 로드
- 🔗 **로컬 파일 연결**: 시스템 경로 링크
- 🔍 **자동 스캔**: 프로젝트 자동 검색
- ⚙️ **CLI 도구**: 글로벌 명령어 지원
</td>
</tr>
</table>
## 🛠 기술 스택
### Frontend
- **React**: 19.1.0 (최신 버전)
- **Tailwind CSS**: 3.4.17 (반응형 스타일링)
- **Lucide React**: 0.525.0 (아이콘)
- **React Flow**: 11.11.4 (다이어그램 시각화)
- **Dagre**: 0.8.5 (자동 레이아웃 엔진)
### Backend
- **Node.js & Express**: 4.19.2 (API 서버)
- **CORS**: 2.8.5 (교차 출처 리소스 공유)
- **File System**: 로컬 파일 시스템 기반 데이터 저장
### Development & Testing
- **Create React App**: 5.0.1 (빌드 시스템)
- **Jest & React Testing Library**: 테스트 프레임워크
- **Concurrently**: 9.2.0 (개발 서버 동시 실행)
## 🚀 설치 및 실행
### 📦 글로벌 설치 (권장)
#### 설치
```bash
npm install -g task-master-monitoring
```
#### 실행
```bash
# 완전한 명령어
task-master-monitoring
# 간단한 명령어 (별칭)
tmm
```
#### 옵션
```bash
# 기본 포트(3001)로 실행
tmm
# 사용자 정의 포트로 실행
tmm --port 4000
# 도움말 보기
tmm --help
# 버전 정보
tmm --version
```
서버 시작 후 브라우저에서 **http://localhost:3000** 으로 접속하세요.
> **참고**: 글로벌 설치 시 사용자 프로젝트 데이터는 `~/.task-master-monitoring/projects/` 디렉토리에 저장됩니다.
---
### 🛠 개발자 모드 설치
#### 사전 요구사항
- Node.js (권장: v16 이상)
- npm 또는 yarn
#### 로컬 설치
```bash
git clone <repository-url>
cd project-dashboard
npm install
```
#### 실행 방법
##### 개발 모드 (추천)
```bash
npm run dev
```
- 프론트엔드(3000번 포트)와 백엔드(3001번 포트)를 동시에 실행
- 코드 변경 시 자동 리로드
##### 개별 실행
```bash
# 백엔드만 실행
npm run server
# 프론트엔드만 실행 (다른 터미널에서)
npm start
```
##### 프로덕션 모드
```bash
npm run start:prod
```
- React 앱을 빌드하고 백엔드 서버에서 서빙
##### 테스트 실행
```bash
npm test
```
## 📂 프로젝트 구조
```
project-dashboard/
├── bin/
│ └── tmm.js # CLI 실행 파일
├── public/
│ ├── projects/ # 로컬 프로젝트 데이터 (개발용)
│ │ └── test/ # 테스트 프로젝트
│ │ ├── tasks.json # 태스크 데이터
│ │ ├── task-memo.json # 태스크 메모
│ │ └── dashboard-memo.json # 대시보드 메모
│ └── index.html
├── src/
│ ├── components/ # React 컴포넌트
│ │ ├── DiagramView.jsx # 다이어그램 뷰 컴포넌트
│ │ ├── FilterBar.jsx # 필터링 바 컴포넌트
│ │ ├── ProjectList.jsx # 프로젝트 목록 컴포넌트
│ │ ├── TaskDetailModal.jsx # 작업 상세 모달 컴포넌트
│ │ ├── TaskNode.jsx # 커스텀 노드 컴포넌트
│ │ └── TaskStats.jsx # 작업 통계 컴포넌트
│ ├── hooks/ # 커스텀 훅
│ │ ├── useMemos.js # 메모 관리 훅
│ │ ├── useProjects.js # 프로젝트 관리 훅
│ │ ├── useTaskFiltering.js # 태스크 필터링 훅
│ │ └── useTaskOrder.js # 태스크 정렬 훅
│ ├── utils/ # 유틸리티 함수
│ │ ├── projectUtils.js # 프로젝트 관련 유틸리티
│ │ └── taskUtils.js # 태스크 관련 유틸리티
│ ├── App.js # 루트 컴포넌트
│ ├── ProjectDashboard.jsx # 메인 대시보드 컴포넌트
│ └── index.js
├── server.js # Express 백엔드 서버
├── CLAUDE.md # Claude Code 설정
├── package.json
└── README.md
```
### 사용자 데이터 디렉토리
글로벌 설치 시 사용자 데이터는 다음 위치에 저장됩니다:
```
~/.task-master-monitoring/
└── projects/ # 사용자 프로젝트 데이터
├── project-name/
│ ├── tasks.json # 태스크 데이터
│ ├── task-memo.json # 태스크별 메모
│ ├── dashboard-memo.json # 대시보드 메모
│ └── path.txt # 외부 경로 링크 (선택적)
└── ...
```
## 🔧 API 엔드포인트
### 메모 관리
- **POST** `/api/save-memo` - 태스크별 메모 저장
- **GET** `/api/load-memo/:project` - 태스크별 메모 로드
- **POST** `/api/save-dashboard-memo` - 대시보드 메모 저장
- **GET** `/api/load-dashboard-memo/:project` - 대시보드 메모 로드
### 프로젝트 관리
- **POST** `/api/create-project-dir` - 프로젝트 디렉토리 생성
- **POST** `/api/create-project` - 새 프로젝트 생성 (외부 링크 포함)
- **GET** `/api/scan-projects` - 사용자 디렉토리 프로젝트 스캔
- **GET** `/api/scan-external-links` - 외부 링크 프로젝트 스캔
- **POST** `/api/load-external-path` - 외부 경로에서 데이터 로드
## 📊 데이터 구조
### 작업 데이터 형식
```json
{
"master": {
"projectName": "프로젝트 이름",
"description": "프로젝트 설명",
"tasks": [
{
"id": "1.1",
"title": "작업 제목",
"description": "작업 설명",
"status": "pending",
"priority": "high",
"dependencies": ["1.0"],
"details": "상세 정보",
"testStrategy": "테스트 전략",
"subtasks": [
{
"id": "1.1.1",
"title": "하위 작업",
"description": "하위 작업 설명",
"status": "done"
}
]
}
]
}
}
```
### 메모 데이터 구조
```json
{
"8": "Task 8에 대한 메모",
"101": "Task 101에 대한 메모",
"102": "Task 102에 대한 메모"
}
```
### 지원되는 상태
- `pending`: 대기 ⏳
- `in-progress`: 진행 중 🔄
- `review`: 검토 👀
- `done`: 완료 ✅
- `completed`: 완성 🎉
- `deferred`: 연기 ⏸️
- `blocked`: 차단됨 🚫
- `cancelled`: 취소됨 ❌
### 우선순위 레벨
- `critical`: 긴급 🔴
- `high`: 높음 🟠
- `medium`: 보통 🟡
- `low`: 낮음 🟢
## 💻 사용 방법
### 1. JSON 데이터 직접 입력
1. 대시보드 접속 (http://localhost:3000)
2. "Paste JSON Data" 영역에 작업 데이터 붙여넣기
3. "Load Project Data" 버튼 클릭
### 2. 로컬 프로젝트 로드
1. "Available Projects" 섹션에서 프로젝트 선택
2. "Connect" 버튼 클릭하여 로드
> **참고**: 글로벌 설치 시 사용자 홈 디렉토리(`~/.task-master-monitoring/projects/`)의 프로젝트들이 표시됩니다.
### 3. 외부 프로젝트 연결
1. "Create New Project" 섹션에서 프로젝트 정보 입력
2. 외부 JSON 파일 경로 지정
3. 프로젝트 생성 후 자동 연결
### 4. 작업 관리
- **뷰 모드 전환**: Cards, List, Diagram 세 가지 뷰 모드 지원
- **다이어그램 뷰**: 노드 기반 의존성 시각화 및 자동 레이아웃
- **필터링**: 상태, 우선순위별 필터 적용 (모든 뷰에서 동일 적용)
- **검색**: 제목이나 설명으로 작업 검색
- **정렬**: 다양한 기준으로 작업 정렬 (의존성 기반 포함)
- **상태 변경**: 카드나 리스트에서 직접 상태 변경
- **상세 보기**: "Details" 버튼 또는 다이어그램 노드 클릭으로 작업 상세 정보 확인
- **의존성 탐색**: 작업 상세보기에서 Dependencies와 Subtasks ID 클릭으로 연관 작업 바로 이동
### 5. 메모 활용
- **태스크 메모**: 각 작업 카드에서 메모 아이콘 클릭하여 작성
- **대시보드 메모**: 우측 상단 메모 섹션에서 전체 프로젝트 메모 작성
- **메모 접기/펼치기**: 대시보드 메모 영역 크기 조절 및 토글 기능
- **자동 저장**: 작성한 메모는 백엔드 API를 통해 자동으로 파일에 저장
## 🔧 문제 해결
### 일반적인 문제들
#### 포트 충돌 문제
```bash
# 다른 포트로 실행
tmm --port 4000
```
#### 프로젝트가 로드되지 않는 경우
1. JSON 형식이 올바른지 확인
2. 브라우저 콘솔에서 오류 메시지 확인
3. 백엔드 서버(3001 포트)가 정상 실행 중인지 확인
#### 메모가 저장되지 않는 경우
- 백엔드 서버 연결 상태 확인
- 파일 쓰기 권한 확인 (홈 디렉토리 `.task-master-monitoring/` 폴더)
#### 의존성 다이어그램이 표시되지 않는 경우
- 작업 데이터에 `dependencies` 필드가 올바르게 설정되어 있는지 확인
- 브라우저를 새로고침하여 React Flow 컴포넌트 재초기화
### 로그 확인
개발 모드에서 문제 발생 시:
```bash
# 브라우저 개발자 도구 콘솔 확인
# 또는 터미널에서 서버 로그 확인
npm run dev
```
## ❓ FAQ
### 🚀 설치
#### Q: 포트 충돌로 실행이 안 돼요.
A: `tmm --port 4000`처럼 다른 포트를 지정해서 실행하세요. 백엔드는 자동으로 지정된 포트+1을 사용합니다.
### 📊 프로젝트 데이터 관리
#### Q: 어떤 형태의 데이터를 사용할 수 있나요?
A: 다음 세 가지 방법으로 데이터를 사용할 수 있습니다:
- **JSON 직접 입력**: 대시보드에서 바로 붙여넣기
- **tasks.json 파일 연결**: 시스템의 다른 위치에 있는 JSON 파일 링크
#### Q: tasks.json 파일을 어떻게 연결하나요?
A: "Add Project" 섹션에서 프로젝트를 생성할 때 JSON 파일의 절대 경로를 입력하면 자동으로 `path.txt` 파일이 생성되어 연결됩니다.
#### Q: 프로젝트 데이터가 실시간으로 동기화되나요?
A: 메모는 실시간으로 저장되지만, 작업 데이터 자체는 수동으로 다시 로드해야 합니다. 외부 파일을 수정한 후에는 브라우저에서 새로고침하세요. 추후 자동 동기화 기능 추가 예정
### 🔧 기능 사용법
#### Q: 다이어그램 뷰가 복잡해 보여요. 간단하게 볼 수 있나요?
A: 다이어그램 뷰에서 "Simple Node Mode" 토글을 활성화하면 노드가 간소화되어 더 깔끔하게 볼 수 있습니다.
#### Q: 작업 순서를 바꿀 수 있나요?
A: task-master-ai 를 사용해서 직접 변경해야 합니다. 보는 순서는 변경이 가능합니다만, 재접속하거나 "Status + Dependency Order" 버튼 클릭 시 원래 순서로 돌아갑니다.
#### Q: 메모 기능은 어디에 저장되나요?
A: 메모는 프로젝트 폴더(~/.task-master-monitoring/projects/) 내에 저장됩니다. 프로젝트 폴더 내에 `task-memo.json` 파일이 생성되며, 이 파일에 메모가 저장됩니다.
#### Q: 다이어그램 뷰에서 노드 위치를 수동으로 조정 후 저장 가능한가요?
A: 현재는 Dagre 알고리즘에 의한 자동 레이아웃만 지원합니다. 노드를 드래그해서 임시로 위치를 변경할 수 있지만, 새로고침하면 원래 위치로 돌아갑니다. 추후 자동 저장 기능 추가 예정
### 💾 데이터 관리 및 백업
#### Q: 백업은 어떻게 하나요?
A: 사용자 데이터는 `~/.task-master-monitoring/projects/` 디렉토리에 저장되므로, 이 폴더 전체를 백업하면 됩니다. 각 프로젝트별로 `tasks.json`, `task-memo.json`, `dashboard-memo.json` 파일이 포함됩니다.
#### Q: 다른 컴퓨터로 데이터를 옮기려면?
A: 백업한 `~/.task-master-monitoring/projects/` 폴더를 새 컴퓨터의 같은 위치에 복사하면 됩니다.
## 🔄 최근 업데이트 내역 (v1.5.3)
### 🚀 최신 릴리즈 (v1.5.3)
- **🔧 패키지 버전 업데이트**: npm 패키지 버전을 1.5.3으로 업데이트
- **📋 문서 동기화**: README.md에서 최신 버전 정보 반영
- **🚀 배포 준비**: npm publish를 위한 최종 패키지 정리
### 🎯 이전 릴리즈 (v1.5.0-1.5.2)
- **📚 문서화 개선**: 완전히 새로워진 README.md 구조
- **⚡ 빠른 시작 가이드**: 즉시 사용 가능한 설치 및 실행 가이드
- **🖼️ 시각적 미리보기**: ASCII 아트 스크린샷으로 UI 레이아웃 표시
- **🔧 문제 해결 섹션**: 일반적인 문제들과 해결 방법 추가
- **❓ FAQ 섹션**: 자주 묻는 질문들과 상세한 답변
- **🎯 향후 계획**: 프로젝트 로드맵 및 개발 방향 제시
- **📊 프로젝트 상태**: GitHub 배지 및 통계 정보 표시
### 🎯 이전 기능 개선 (v1.4.0)
- **Dependencies 연결 기능**: Task 상세보기 모달에서 Dependencies와 Subtasks ID 클릭 시 해당 task 상세보기 모달 열기
- **대시보드 메모 개선**: 대시보드 메모 접기/펼치기 기능 및 동적 높이 조절 추가
- **프로젝트 관리 안정성**: 프로젝트 삭제 모달 취소 버튼 오류 수정
- **시각적 개선**: 작업 상세보기 모달에서 Dependencies와 Subtasks ID 표시 추가
### 🏗️ 아키텍처 개선 (v1.3.0)
- **컴포넌트 모듈화**: ProjectDashboard 코드 구조 개선 및 컴포넌트 분리
- **커스텀 훅 도입**: useProjects, useMemos, useTaskFiltering, useTaskOrder 등 로직 분리
- **유틸리티 함수 체계화**: taskUtils.js, projectUtils.js로 공통 함수 정리
- **사용자 홈 디렉토리 저장**: 프로젝트 데이터 저장 위치 개선
- **포트 설정 유연성**: tmm --port 옵션으로 사용자 정의 포트 지원
### 🌟 핵심 기능 (v1.2.0 이전)
- **다이어그램 뷰 모드**: React Flow 11.11.4 기반 의존성 시각화
- **자동 버전 업데이트 알림**: NPM 패키지 최신 버전 체크 기능
- **초기 화면 UI/UX 개선**: 프로젝트 관리 기능 강화
- **단순 노드 모드**: 다이어그램 뷰에서 간소화된 노드 표시 토글
- **노드 레이아웃 개선**: Dagre 알고리즘 기반 계층적 자동 배치
### 📝 기반 기능들
- **메모 시스템**: 태스크별/대시보드별 메모 기능 구현
- **백엔드 API 서버**: Express 기반 REST API 서버
- **외부 프로젝트 연결**: path.txt를 통한 외부 JSON 파일 연결
- **프로젝트 자동 스캔**: 사용자 홈 디렉토리 기반 프로젝트 검색
- **의존성 기반 정렬**: 스마트 토폴로지 정렬 알고리즘
- **필터링 & 검색**: 상태, 우선순위별 필터 및 텍스트 검색
- **CLI 도구**: 글로벌 설치 및 명령행 인터페이스 지원
## 📄 라이선스
이 프로젝트는 [MIT 라이선스](LICENSE) 하에 배포됩니다.
## 🤝 기여하기
프로젝트에 기여해주신다면 언제나 환영입니다!
### 기여 방법
1. 🍴 Fork the repository
2. 🌿 Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. 💾 Commit your changes (`git commit -m 'feat: Add some AmazingFeature'`)
4. 📤 Push to the branch (`git push origin feature/AmazingFeature`)
5. 🔃 Open a Pull Request
### 버그 리포트 및 기능 제안
- 🐛 [버그 리포트](https://github.com/chanp5660/task-master-monitoring/issues/new?template=bug_report.md)
- 💡 [기능 제안](https://github.com/chanp5660/task-master-monitoring/issues/new?template=feature_request.md)
---
<div align="center">
**⭐ 이 프로젝트가 도움이 되셨다면 Star를 눌러주세요! ⭐**
Made with ❤️ by [chanp5660](https://github.com/chanp5660/task-master-monitoring)
</div>