[MCP-시리즈5]Task-Master 핵심 명령어 마스터하기: 프로젝트 관리의 모든 것

[MCP-시리즈5]Task-Master 핵심 명령어 마스터하기: 프로젝트 관리의 모든 것

서론: 명령어 하나로 시작하는 생산성 혁명

Task-Master의 진정한 힘은 직관적이면서도 강력한 CLI 명령어에 있습니다. 각 명령어는 특정 워크플로우를 최적화하도록 설계되었으며, 조합하여 사용하면 복잡한 프로젝트도 효율적으로 관리할 수 있습니다.

이번 글에서는 Task-Master의 모든 핵심 명령어를 실제 사용 예제와 함께 마스터해보겠습니다.

프로젝트 초기화 명령어

task-master init

프로젝트에 Task-Master를 도입하는 첫 단계입니다.

# 기본 초기화
task-master init

# 실행 결과
✓ Created .taskmaster directory
✓ Created tasks.json
✓ Created config.json
✓ Task Master initialized successfully!

주요 옵션:

  • --force: 기존 설정을 덮어씁니다
  • --minimal: 최소 설정만 생성합니다

실무 팁: 이미 진행 중인 프로젝트에 도입할 때는 먼저 백업을 만들고 --minimal 옵션으로 시작하세요.

task-master models --setup

AI 모델을 대화형으로 설정합니다.

task-master models --setup

# 대화형 설정 프로세스
? Select main model: Claude 3.5 Sonnet
? Select research model: Perplexity Sonar Large
? Select fallback model: GPT-4o Mini
✓ Models configured successfully!

PRD 파싱과 태스크 생성

task-master parse-prd

PRD(Product Requirements Document)에서 태스크를 자동 생성합니다.

# 기본 사용법
task-master parse-prd .taskmaster/docs/prd.txt

# 기존 태스크에 추가
task-master parse-prd new-features.md --append

# 연구 모드로 상세 태스크 생성
task-master parse-prd prd.txt --research

실제 사용 예제:

# PRD 파일 내용
cat > prd.txt << EOF
프로젝트: 사용자 인증 시스템 구현

요구사항:
1. JWT 기반 인증
2. 소셜 로그인 (Google, GitHub)
3. 2FA 지원
4. 비밀번호 재설정 기능
EOF

# 태스크 자동 생성
task-master parse-prd prd.txt --research

# 생성된 태스크 확인
task-master list

태스크 조회 명령어

task-master list

모든 태스크를 보여줍니다.

# 기본 목록
task-master list

# 특정 상태의 태스크만
task-master list --status=pending

# 우선순위별 필터링
task-master list --priority=high

# 트리 구조로 표시
task-master list --tree

# 의존성 표시
task-master list --dependencies

고급 필터링 예제:

# 진행 중인 고우선순위 태스크
task-master list --status=in-progress --priority=high

# 블로킹된 태스크 확인
task-master list --blocked

# 오늘 완료한 태스크
task-master list --status=done --today

task-master show

특정 태스크의 상세 정보를 표시합니다.

# 태스크 상세 정보
task-master show 1.2

# 서브태스크 포함
task-master show 1 --subtasks

# JSON 형식으로 출력
task-master show 1.2 --json

task-master next

다음에 작업할 태스크를 추천합니다.

# 다음 태스크 추천
task-master next

# 특정 우선순위만 고려
task-master next --priority=high

# 특정 카테고리에서만
task-master next --category=backend

태스크 상태 관리

task-master set-status

태스크 상태를 변경합니다.

# 단일 태스크 상태 변경
task-master set-status --id=1.2 --status=in-progress

# 여러 태스크 동시 변경
task-master set-status --id=1.1,1.2,1.3 --status=done

# 범위로 지정
task-master set-status --from=2.1 --to=2.5 --status=pending

상태 전환 워크플로우:

# 작업 시작
task-master next
task-master set-status --id=3.1 --status=in-progress

# 작업 중 메모 추가
task-master update-subtask --id=3.1 --prompt="JWT 라이브러리로 jsonwebtoken 사용 결정"

# 작업 완료
task-master set-status --id=3.1 --status=done

태스크 생성과 수정

task-master add-task

새로운 태스크를 추가합니다.

# 기본 태스크 추가
task-master add-task --prompt="API 문서 작성"

# AI 지원으로 상세 태스크 생성
task-master add-task --prompt="결제 시스템 통합" --research

# 우선순위와 의존성 지정
task-master add-task --prompt="테스트 코드 작성" --priority=high --depends-on=5.1

task-master expand

태스크를 서브태스크로 분해합니다.

# 특정 태스크 확장
task-master expand --id=4

# AI 연구 모드로 상세 분해
task-master expand --id=4 --research

# 모든 확장 가능한 태스크 처리
task-master expand --all --research

# 강제 확장 (이미 서브태스크가 있어도)
task-master expand --id=4 --force

실무 예제: 복잡한 기능 분해

# 복잡한 태스크 생성
task-master add-task --prompt="실시간 채팅 기능 구현"

# 서브태스크로 분해
task-master expand --id=7 --research

# 결과:
# 7.1 - WebSocket 서버 설정
# 7.2 - 채팅방 모델 설계
# 7.3 - 메시지 전송 API
# 7.4 - 실시간 알림 시스템
# 7.5 - 채팅 UI 컴포넌트

task-master update-task

태스크 정보를 업데이트합니다.

# 태스크 설명 업데이트
task-master update-task --id=3.2 --prompt="Redis 캐싱 추가 필요"

# 우선순위 변경
task-master update-task --id=3.2 --priority=high

# AI 지원 업데이트
task-master update-task --id=3.2 --prompt="성능 최적화 필요" --research

task-master update-subtask

서브태스크에 구현 노트를 추가합니다.

# 구현 상세 기록
task-master update-subtask --id=4.1 --prompt="Passport.js 사용, Google OAuth 2.0 설정 완료"

# 문제점 기록
task-master update-subtask --id=4.2 --prompt="CORS 이슈 발생, credentials: true 옵션 추가로 해결"

분석과 리포트

task-master analyze-complexity

프로젝트 복잡도를 AI가 분석합니다.

# 전체 프로젝트 분석
task-master analyze-complexity --research

# 특정 범위 분석
task-master analyze-complexity --from=5 --to=10 --research

# 분석 결과 저장
task-master analyze-complexity --research > complexity-report.md

task-master complexity-report

저장된 복잡도 분석을 조회합니다.

# 리포트 조회
task-master complexity-report

# JSON 형식으로 출력
task-master complexity-report --json

# 특정 섹션만 표시
task-master complexity-report --section=recommendations

의존성 관리

task-master add-dependency

태스크 간 의존성을 추가합니다.

# 단일 의존성 추가
task-master add-dependency --id=5.3 --depends-on=5.1

# 여러 의존성 추가
task-master add-dependency --id=5.3 --depends-on=5.1,5.2

# 체인 의존성
task-master add-dependency --id=6 --depends-on=5

task-master validate-dependencies

의존성 문제를 검사합니다.

# 의존성 검증
task-master validate-dependencies

# 순환 의존성 감지
# 출력: ⚠️  Circular dependency detected: 3.1 → 3.2 → 3.3 → 3.1

# 누락된 의존성 확인
# 출력: ⚠️  Task 4.2 depends on non-existent task 4.5

고급 활용 팁

명령어 조합 패턴

1. 일일 워크플로우

# 아침 시작
task-master list --status=in-progress  # 진행 중인 작업 확인
task-master next                       # 오늘의 첫 작업 선택
task-master show  --subtasks       # 상세 내용 확인

2. 스프린트 계획

# 복잡도 분석
task-master analyze-complexity --research

# 우선순위 조정
task-master update --from=1 --to=20 --prompt="스프린트 1 목표에 맞춰 우선순위 재조정"

# 스프린트 백로그 확인
task-master list --priority=high --status=pending

3. 진행 상황 리포트

# 주간 완료 태스크
task-master list --status=done --days=7

# 블로킹 이슈 확인
task-master list --blocked

# 팀원별 할당 (태그 활용)
task-master list --tag=frontend-team

스크립트 자동화

자동 상태 업데이트 스크립트:

#!/bin/bash
# auto-complete.sh

# PR 머지 시 관련 태스크 자동 완료
PR_TITLE=$1
TASK_ID=$(echo $PR_TITLE | grep -oP 'task-\K\d+\.\d+')

if [ ! -z "$TASK_ID" ]; then
    task-master set-status --id=$TASK_ID --status=done
    task-master next  # 다음 작업 표시
fi

일일 리포트 생성:

#!/bin/bash
# daily-report.sh

echo "=== Daily Task Report ==="
echo "Date: $(date)"
echo ""

echo "Completed Today:"
task-master list --status=done --today

echo -e "\nIn Progress:"
task-master list --status=in-progress

echo -e "\nNext Priority:"
task-master next

문제 해결과 팁

자주 발생하는 문제들

1. 태스크 ID를 잘못 입력했을 때

# 잘못된 ID 수정
task-master move --from=10.1 --to=9.3

2. 의존성이 꼬였을 때

# 의존성 검증
task-master validate-dependencies

# 문제가 있는 의존성 제거
task-master remove-dependency --id=5.2 --depends-on=5.3

3. 너무 많은 태스크가 생성됐을 때

# 우선순위 재조정
task-master update --from=20 --prompt="MVP에 필요한 핵심 기능만 high priority로 조정"

# 불필요한 태스크 연기
task-master set-status --id=30,31,32 --status=deferred

성능 최적화 팁

캐시 활용

# 자주 사용하는 명령어는 별칭 설정
alias tm-next="task-master next"
alias tm-done="task-master set-status --status=done --id="

AI 호출 최소화

# 단순 작업은 --no-ai 플래그 사용
task-master add-task --prompt="README 오타 수정" --no-ai

배치 작업 활용

# 나쁜 예: 개별 명령 실행
task-master set-status --id=1.1 --status=done
task-master set-status --id=1.2 --status=done
task-master set-status --id=1.3 --status=done

# 좋은 예: 배치 실행
task-master set-status --id=1.1,1.2,1.3 --status=done

실전 시나리오

시나리오 1: 새 기능 개발

# 1. 기능 요구사항을 PRD로 작성
echo "새 기능: 알림 시스템" > notification-prd.txt
echo "- 이메일 알림" >> notification-prd.txt
echo "- 푸시 알림" >> notification-prd.txt
echo "- 알림 설정 페이지" >> notification-prd.txt

# 2. 태스크 자동 생성
task-master parse-prd notification-prd.txt --research

# 3. 복잡도 분석
task-master analyze-complexity --from= --research

# 4. 첫 태스크 시작
task-master next
task-master set-status --id= --status=in-progress

시나리오 2: 버그 수정 워크플로우

# 1. 긴급 버그 태스크 추가
task-master add-task --prompt="[URGENT] 로그인 실패 버그 수정" --priority=high

# 2. 서브태스크로 분해
task-master expand --id= --research

# 3. 진행 상황 기록
task-master update-subtask --id= --prompt="원인: JWT 토큰 만료 시간 처리 오류"

# 4. 수정 완료
task-master set-status --id= --status=done

결론: 명령어 마스터가 되는 길

Task-Master의 명령어들은 각각 특정 목적을 위해 설계되었지만, 진정한 힘은 이들을 조합하여 사용할 때 나타납니다.

핵심은:

  • 일관성: 매일 같은 워크플로우 유지
  • 자동화: 반복 작업은 스크립트로
  • 기록: update-subtask로 모든 결정사항 문서화

다음 글에서는 PRD 작성부터 태스크 자동 생성까지의 전체 프로세스를 자세히 다루겠습니다.


태그: #TaskMaster #CLI #프로젝트관리 #개발도구 #생산성 #명령어가이드

]]>