포스트

Claude Code 2.1.16 테스크 매니지먼트 시스템 완벽 가이드

Claude Code 2.1.16 테스크 매니지먼트 시스템 완벽 가이드

목차

  1. 개요
  2. 핵심 변화와 혁신
  3. 새로운 테스크 시스템의 기술적 구조
  4. 세션 간 공유와 병렬 작업의 메커니즘
  5. 실전 활용 시나리오
  6. 환경 변수와 고급 설정
  7. 기존 시스템과의 비교
  8. Claude Code 2.1 전체 업데이트 컨텍스트
  9. 커뮤니티 에코시스템과 서드파티 도구
  10. 실무 적용 가이드
  11. 문제 해결과 최적화 팁

개요

Claude Code 2.1.16 버전은 AI 기반 개발 도구의 패러다임을 근본적으로 바꾸는 업데이트입니다. 이번 릴리스의 핵심은 바로 새로운 테스크 매니지먼트 시스템(Task Management System)의 도입입니다. 이 시스템은 단순히 할 일 목록을 관리하는 수준을 넘어서, 여러 AI 에이전트가 동시에 협업하며 대규모 프로젝트를 체계적으로 처리할 수 있는 완전히 새로운 개발 환경을 제공합니다.

전통적인 개발 도구들이 사람이 직접 작업을 관리하고 조율한다는 전제 하에 설계되었다면, Claude Code 2.1.16의 테스크 시스템은 AI 에이전트가 1등 시민(First-class Citizen)으로 참여하는 개발 환경을 목표로 합니다. 이는 단순한 기능 추가가 아니라, AI 협업 개발의 미래를 제시하는 중요한 이정표라고 할 수 있습니다.

업데이트의 규모와 의미

Claude Code 2.1 시리즈는 총 1,096개의 커밋을 포함하는 대규모 업데이트입니다. 이 중 2.1.16 버전에서 테스크 매니지먼트 시스템이 공식적으로 도입되었으며, 이는 다음과 같은 철학적 변화를 반영합니다:

  • 턴제 방식에서 병렬 처리로: 기존에는 “사용자가 질문 → Claude가 응답 → 사용자가 다시 질문” 형태의 순차적 상호작용이었다면, 이제는 여러 작업이 동시에 진행되는 진정한 멀티태스킹 환경이 구현되었습니다.

  • 일회성 도구에서 영속적 협업 플랫폼으로: 세션이 종료되면 모든 컨텍스트가 사라지는 기존 방식 대신, 작업 상태가 파일 시스템에 영구적으로 저장되어 언제든 재개할 수 있는 구조로 진화했습니다.

  • 단일 에이전트에서 멀티 에이전트 오케스트레이션으로: 하나의 Claude 세션이 모든 작업을 처리하는 것이 아니라, 여러 세션이 각자 다른 작업을 맡아 동시에 진행하면서도 전체적인 조율이 가능한 시스템이 구축되었습니다.


핵심 변화와 혁신

1. 기존 To-Do 시스템의 한계와 대체

Claude Code 2.1.16 이전 버전에서는 TodoWrite라는 도구를 사용하여 간단한 체크리스트 형태의 할 일 목록을 관리했습니다. 이 시스템은 다음과 같은 근본적인 한계가 있었습니다:

기존 To-Do 시스템의 문제점:

  1. 휘발성: 세션이 종료되면 할 일 목록이 사라졌습니다. 새로운 터미널을 열거나 다른 디렉토리로 이동하면 이전에 작성했던 체크리스트에 접근할 수 없었습니다.

  2. 세션 격리: 두 개의 서로 다른 터미널 창에서 Claude Code를 실행하면, 각 세션은 완전히 독립적으로 작동했습니다. 한 세션에서 만든 할 일 목록을 다른 세션에서 볼 수 없었고, 당연히 공유나 협업도 불가능했습니다.

  3. 단순한 상태 관리: 체크박스의 체크/언체크라는 이진 상태만 지원했습니다. “진행 중”, “차단됨”, “리뷰 대기” 같은 세밀한 작업 상태를 표현할 수 없었습니다.

  4. 의존성 추적 불가: 작업 A가 완료되어야 작업 B를 시작할 수 있다는 식의 의존 관계를 시스템적으로 관리할 수 없었습니다. 모든 것을 개발자가 수동으로 기억하고 조율해야 했습니다.

  5. 병렬 처리 미지원: 여러 작업을 동시에 진행하려면 각 작업마다 별도의 터미널을 열어야 했고, 이들 간의 상호작용이나 상태 공유가 불가능했습니다.

새로운 Task 시스템의 해결책:

2.1.16 버전에서는 이러한 모든 한계를 해결하기 위해 4가지 전문화된 도구를 도입했습니다:

  • task_create: 새로운 작업을 생성하고, 제목, 설명, 우선순위, 의존성 등의 메타데이터를 함께 정의할 수 있습니다.

  • task_get: 특정 작업의 상세 정보를 조회합니다. 현재 상태, 진행률, 연관된 파일, 작업 히스토리 등을 확인할 수 있습니다.

  • task_list: 모든 작업의 목록을 필터링하여 볼 수 있습니다. 상태별, 우선순위별, 담당자별로 분류가 가능합니다.

  • task_update: 작업의 상태나 속성을 업데이트합니다. 단순히 완료 여부를 체크하는 것을 넘어, 진행 상황, 메모, 차단 사유 등을 상세히 기록할 수 있습니다.

2. 단축키의 의미론적 변화

기존에 To-Do 목록을 토글하던 단축키 Ctrl + T가 이제는 새로운 테스크 시스템의 목록을 표시하는 기능으로 자동 전환되었습니다. 이는 단순한 UI 변경이 아니라, 시스템의 기본 작업 단위가 “휘발성 체크리스트”에서 “영속적 구조화된 작업”으로 바뀌었음을 상징적으로 보여줍니다.

사용자가 Ctrl + T를 누르면, 더 이상 현재 세션의 임시 메모가 아니라 파일 시스템에 저장되어 있는 실제 작업 목록이 표시됩니다. 이 목록은:

  • 다른 터미널에서도 동일하게 보입니다
  • 세션을 종료했다가 다시 시작해도 그대로 유지됩니다
  • 각 작업의 상세한 상태 정보를 포함합니다
  • 작업 간의 의존 관계를 시각적으로 표현합니다

3. 롱러닝 에이전트(Long-running Agent) 패러다임

가장 중요한 철학적 변화는 Claude Code가 롱러닝 에이전트 시스템으로 진화했다는 점입니다. 이는 다음을 의미합니다:

롱러닝 에이전트의 특징:

  1. 영속성(Persistence): 에이전트의 작업 상태가 메모리가 아닌 디스크에 저장되어, 프로세스가 종료되어도 작업을 재개할 수 있습니다.

  2. 자율성(Autonomy): 에이전트는 사용자의 실시간 개입 없이도 미리 정의된 작업 계획에 따라 장시간 작업을 수행할 수 있습니다.

  3. 협업(Collaboration): 여러 에이전트 인스턴스가 공유된 작업 목록을 통해 서로의 진행 상황을 인지하고 조율할 수 있습니다.

  4. 복원력(Resilience): 네트워크 오류, 시스템 재시작 등의 중단 상황에서도 작업 상태를 복구하고 계속 진행할 수 있습니다.

이러한 특성은 Claude Code를 단순한 “코딩 어시스턴트”에서 “자율적 개발 파트너”로 격상시킵니다. 이제 개발자는 Claude에게 복잡한 리팩토링이나 대규모 기능 구현을 맡긴 후, 다른 작업을 하거나 심지어 퇴근을 할 수도 있습니다. Claude는 배경에서 계속 작업을 진행하고, 진행 상황을 파일에 기록하며, 문제가 발생하면 적절히 기록해둡니다.


새로운 테스크 시스템의 기술적 구조

1. 데이터 저장 아키텍처

새로운 테스크 시스템의 핵심은 파일 시스템 기반의 영속적 저장소입니다. 모든 작업 정보는 사용자의 홈 디렉토리에 다음과 같은 구조로 저장됩니다:

1
2
3
4
5
6
7
~/.claude/
└── tasks/
    └── <TASK_LIST_ID>/
        ├── task_001.json
        ├── task_002.json
        ├── task_003.json
        └── ...

구조 설명:

  • ~/.claude/tasks/: 모든 테스크 데이터의 루트 디렉토리입니다. 이 위치는 사용자의 홈 디렉토리에 고정되어 있어, 어느 프로젝트 디렉토리에서 작업하든 동일한 테스크 데이터에 접근할 수 있습니다.

  • **/**: 각 프로젝트나 작업 그룹별로 고유한 ID를 가진 서브디렉토리가 생성됩니다. 이 ID는 기본적으로 현재 작업 중인 프로젝트의 디렉토리 경로를 해시하여 생성되지만, 환경 변수를 통해 명시적으로 지정할 수도 있습니다.

  • task_XXX.json: 각 작업은 개별 JSON 파일로 저장됩니다. 파일명의 숫자는 작업의 순서나 ID를 나타내며, 자동으로 증가합니다.

2. 작업 데이터 스키마

각 JSON 파일은 다음과 같은 구조화된 정보를 포함합니다:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
  "id": "task_001",
  "title": "사용자 인증 시스템 구현",
  "description": "JWT 기반 로그인/로그아웃 기능을 구현하고, 세션 관리 로직을 추가합니다.",
  "status": "in_progress",
  "priority": "high",
  "created_at": "2026-01-25T10:30:00Z",
  "updated_at": "2026-01-25T13:45:00Z",
  "dependencies": ["task_000"],
  "assigned_to": "session_abc123",
  "progress": 0.45,
  "notes": [
    {
      "timestamp": "2026-01-25T11:00:00Z",
      "content": "기본 JWT 토큰 생성 로직 완료"
    },
    {
      "timestamp": "2026-01-25T12:30:00Z",
      "content": "리프레시 토큰 메커니즘 구현 중"
    }
  ],
  "related_files": [
    "src/auth/jwt.ts",
    "src/middleware/auth.ts",
    "tests/auth.test.ts"
  ],
  "blockers": []
}

필드 설명:

  • id: 작업의 고유 식별자입니다. task_XXX 형식으로 자동 생성됩니다.

  • title: 작업의 간단한 제목입니다. 작업 목록에서 표시될 때 사용됩니다.

  • description: 작업의 상세한 설명입니다. 무엇을 해야 하는지, 왜 해야 하는지, 어떻게 해야 하는지에 대한 정보를 포함할 수 있습니다.

  • status: 작업의 현재 상태를 나타냅니다. 가능한 값은:
    • pending: 아직 시작하지 않은 대기 중인 작업
    • in_progress: 현재 진행 중인 작업
    • completed: 완료된 작업
    • blocked: 의존성이나 외부 요인으로 인해 차단된 작업
    • cancelled: 취소된 작업
  • priority: 작업의 우선순위입니다. low, medium, high, critical 등의 값을 가질 수 있습니다.

  • created_at: 작업이 생성된 시각의 ISO 8601 타임스탬프입니다.

  • updated_at: 작업이 마지막으로 업데이트된 시각의 ISO 8601 타임스탬프입니다.

  • dependencies: 이 작업이 의존하는 다른 작업들의 ID 목록입니다. 의존성에 있는 모든 작업이 완료되어야 이 작업을 시작할 수 있습니다.

  • assigned_to: 현재 이 작업을 수행 중인 Claude 세션의 ID입니다. 여러 세션이 같은 작업 목록을 공유할 때, 누가 무엇을 하고 있는지 추적하는 데 사용됩니다.

  • progress: 작업의 진행률을 0.0(0%)에서 1.0(100%) 사이의 실수로 나타냅니다.

  • notes: 작업 진행 과정에서 추가되는 메모들의 시계열 배열입니다. 각 메모는 타임스탬프와 내용을 포함합니다.

  • related_files: 이 작업과 관련된 파일들의 경로 목록입니다. 코드 변경, 테스트 파일, 문서 등이 포함될 수 있습니다.

  • blockers: 작업을 차단하고 있는 요인들의 목록입니다. 기술적 이슈, 외부 의존성, 리소스 부족 등이 기록될 수 있습니다.

3. 작업 상태 머신(State Machine)

작업의 상태는 다음과 같은 상태 전이 규칙을 따릅니다:

1
2
3
4
5
6
pending → in_progress → completed
   ↓           ↓            ↑
blocked ←→ in_progress      |
   ↓                        |
cancelled                   |
   ↑________________________|

상태 전이 규칙:

  1. pending 작업은 의존성이 모두 해결되면 in_progress로 전환될 수 있습니다.

  2. in_progress 작업은:
    • 성공적으로 완료되면 completed로 전환됩니다.
    • 차단 요인이 발생하면 blocked로 전환됩니다.
    • 더 이상 필요하지 않으면 cancelled로 전환될 수 있습니다.
  3. blocked 작업은:
    • 차단 요인이 해결되면 다시 in_progress로 돌아갑니다.
    • 해결 불가능한 것으로 판단되면 cancelled로 전환될 수 있습니다.
  4. completedcancelled는 최종 상태이지만, 필요에 따라 작업을 재개할 수도 있습니다.

4. 의존성 그래프(Dependency Graph)

작업 간의 의존 관계는 방향성 비순환 그래프(DAG, Directed Acyclic Graph)로 표현됩니다. 이는 다음을 보장합니다:

  • 순서 보장: 의존하는 작업이 먼저 완료되어야 다음 작업을 시작할 수 있습니다.

  • 순환 방지: A가 B를 의존하고, B가 다시 A를 의존하는 순환 의존성을 시스템적으로 방지합니다.

  • 병렬화 최적화: 의존성이 없는 작업들은 여러 세션에서 동시에 수행될 수 있습니다.

의존성 그래프 예시:

1
2
3
4
5
6
7
8
9
10
11
task_001 (데이터베이스 스키마 설계)
    ↓
task_002 (사용자 모델 구현) ←─┐
    ↓                         │
task_003 (인증 API 구현)      │
    ↓                         │
task_004 (프론트엔드 로그인 UI)│
                              │
task_005 (이메일 인증) ────────┘
    ↓
task_006 (전체 통합 테스트)

이 구조에서:

  • task_002와 task_005는 task_001이 완료된 후 동시에 시작될 수 있습니다.
  • task_004는 task_002와 task_005가 모두 완료되어야 시작할 수 있습니다.
  • task_006은 모든 작업이 완료된 후 마지막으로 실행됩니다.

세션 간 공유와 병렬 작업의 메커니즘

1. 세션 ID와 작업 리스트 ID의 분리

Claude Code 2.1.16의 가장 혁신적인 특징은 세션 ID(Session ID)작업 리스트 ID(Task List ID)를 분리한 것입니다.

세션 ID:

  • 각 Claude Code 인스턴스는 시작될 때 고유한 세션 ID를 부여받습니다.
  • 형식은 보통 session_<UUID> 형태입니다.
  • 세션 ID는 해당 인스턴스의 대화 히스토리, 컨텍스트, 실행 환경을 식별합니다.
  • 터미널을 종료하면 세션도 종료되지만, 세션이 만든 작업은 파일 시스템에 남아있습니다.

작업 리스트 ID:

  • 작업 목록을 저장하는 디렉토리의 이름입니다.
  • 기본적으로 현재 프로젝트 디렉토리 경로의 해시값으로 자동 생성됩니다.
  • 같은 프로젝트에서 실행된 모든 세션은 기본적으로 같은 작업 리스트 ID를 공유합니다.
  • 환경 변수 CLAUDE_CODE_TASK_LIST_ID를 통해 명시적으로 지정할 수도 있습니다.

분리의 의미:

이 분리 구조 덕분에 다음이 가능합니다:

  1. 세션 독립성: 각 터미널 창은 독립적인 Claude 세션을 실행하면서도, 같은 작업 목록을 바라볼 수 있습니다.

  2. 작업 영속성: 세션이 종료되어도 작업 데이터는 파일 시스템에 남아있어, 새로운 세션에서 즉시 재개할 수 있습니다.

  3. 유연한 협업: 개발자는 필요에 따라 여러 세션을 동시에 실행하여 서로 다른 작업을 병렬로 진행할 수 있습니다.

2. 실시간 동기화 메커니즘

여러 세션이 같은 작업 목록을 공유할 때, 각 세션은 다음과 같은 방식으로 동기화됩니다:

파일 시스템 기반 동기화:

  1. 작업 생성/업데이트: 한 세션이 task_create 또는 task_update를 호출하면, 해당 작업의 JSON 파일이 즉시 디스크에 기록됩니다.

  2. 변경 감지: 다른 세션들은 주기적으로(또는 특정 작업 수행 전에) 작업 디렉토리를 스캔하여 파일의 변경 사항을 감지합니다.

  3. 상태 갱신: 변경된 파일을 읽어 내부 상태를 업데이트하고, UI를 갱신합니다.

충돌 해결 전략:

두 세션이 동시에 같은 작업을 수정하려고 할 때:

  1. 낙관적 잠금(Optimistic Locking): 각 JSON 파일에는 버전 번호나 최종 수정 타임스탬프가 포함됩니다.

  2. Last-Write-Wins: 대부분의 경우, 마지막에 쓴 세션의 변경사항이 적용됩니다.

  3. 충돌 알림: 충돌이 감지되면 사용자에게 알림을 표시하고, 필요시 수동 해결을 요청합니다.

3. 병렬 작업의 실제 시나리오

시나리오: 대규모 JavaScript → TypeScript 마이그레이션

개발자가 100개의 JavaScript 파일을 TypeScript로 변환해야 하는 상황을 가정해봅시다.

전통적 방식 (단일 세션):

1
2
3
4
터미널 1:
> "100개의 JS 파일을 TS로 변환해줘"
> [Claude가 순차적으로 100개 파일을 처리... 약 2시간 소요]
> [개발자는 이 시간 동안 다른 작업을 할 수 없음]

새로운 방식 (병렬 세션):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 터미널 1: 메인 세션
> "100개의 JS 파일을 TS로 변환하는 작업을 10개의 테스크로 나눠줘"
> [Claude가 task_001 ~ task_010 생성, 각각 10개 파일씩 담당]

# 터미널 2: 워커 세션 1
> Ctrl+T로 작업 목록 확인
> "task_001 처리해줘"
> [파일 1-10 변환 시작]

# 터미널 3: 워커 세션 2
> Ctrl+T로 작업 목록 확인
> "task_002 처리해줘"
> [파일 11-20 변환 시작]

# 터미널 4: 워커 세션 3
> Ctrl+T로 작업 목록 확인
> "task_003 처리해줘"
> [파일 21-30 변환 시작]

... (필요한 만큼 세션 추가)

# 결과: 3-4개 세션이 동시에 작업하여 약 30-40분 만에 완료

실시간 상태 업데이트:

터미널 1에서 Ctrl+T를 누르면 실시간으로 업데이트되는 현황을 볼 수 있습니다:

1
2
3
4
5
[✓] task_001: 파일 1-10 변환 (completed - session_abc)
[✓] task_002: 파일 11-20 변환 (completed - session_def)
[▶] task_003: 파일 21-30 변환 (in_progress - session_ghi, 60%)
[⏸] task_004: 파일 31-40 변환 (pending)
...

4. 디렉토리 독립적 작업 공유

환경 변수 CLAUDE_CODE_TASK_LIST_ID를 사용하면 물리적으로 다른 디렉토리에 있는 프로젝트들도 같은 작업 목록을 공유할 수 있습니다.

사용 사례:

1
2
3
4
5
6
7
8
9
10
11
# 프로젝트 A (~/projects/frontend)
export CLAUDE_CODE_TASK_LIST_ID="shared_project_tasks"
cd ~/projects/frontend
claude

# 프로젝트 B (~/projects/backend)
export CLAUDE_CODE_TASK_LIST_ID="shared_project_tasks"
cd ~/projects/backend
claude

# 두 세션 모두 같은 ~/.claude/tasks/shared_project_tasks/ 디렉토리를 사용

실제 활용 예:

풀스택 웹 애플리케이션 개발 시, 프론트엔드 개발자와 백엔드 개발자가 각자의 프로젝트 디렉토리에서 작업하면서도 같은 작업 목록을 통해 협업할 수 있습니다:

1
2
3
4
5
6
공유 작업 목록:
- task_001: API 엔드포인트 설계 (백엔드 담당)
- task_002: API 문서 작성 (백엔드 담당)
- task_003: API 클라이언트 코드 생성 (자동)
- task_004: 프론트엔드 UI 구현 (프론트엔드 담당)
- task_005: 통합 테스트 (공동 작업)

실전 활용 시나리오

1. 시나리오: 복잡한 리팩토링 프로젝트

상황: 레거시 모놀리식 애플리케이션을 마이크로서비스 아키텍처로 전환하는 대규모 리팩토링 프로젝트를 진행한다고 가정합니다.

단계별 진행:

1단계: 초기 분석 및 계획 수립

1
2
3
4
5
# 터미널 1 (메인 기획 세션)
claude

> "현재 codebase를 분석하고, 마이크로서비스로 전환하기 위한 작업 목록을 만들어줘. 
   각 작업은 독립적으로 수행 가능하도록 나눠주고, 의존성도 명시해줘."

Claude가 다음과 같은 작업 목록을 생성합니다:

1
2
3
4
5
6
7
8
9
10
[✓] task_001: 도메인 경계 분석 및 문서화 (completed)
[⏸] task_002: 인증/인가 서비스 분리 (depends: task_001)
[⏸] task_003: 사용자 관리 서비스 분리 (depends: task_001)
[⏸] task_004: 주문 처리 서비스 분리 (depends: task_001)
[⏸] task_005: 결제 서비스 분리 (depends: task_001)
[⏸] task_006: API 게이트웨이 구현 (depends: task_002-005)
[⏸] task_007: 서비스 간 통신 레이어 구현 (depends: task_002-005)
[⏸] task_008: 데이터베이스 마이그레이션 (depends: task_002-005)
[⏸] task_009: 통합 테스트 및 검증 (depends: task_006-008)
[⏸] task_010: 배포 파이프라인 구축 (depends: task_009)

2단계: 병렬 작업 시작

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 터미널 2 (인증 서비스 담당)
export CLAUDE_CODE_TASK_LIST_ID="microservice_refactor"
cd ~/project/auth-service
claude

> "task_002를 처리해줘. 기존 코드의 인증/인가 로직을 독립 서비스로 분리해줘."

# 터미널 3 (사용자 서비스 담당)
export CLAUDE_CODE_TASK_LIST_ID="microservice_refactor"
cd ~/project/user-service
claude

> "task_003을 처리해줘. 사용자 관리 관련 기능을 별도 서비스로 분리해줘."

# 터미널 4 (주문 서비스 담당)
export CLAUDE_CODE_TASK_LIST_ID="microservice_refactor"
cd ~/project/order-service
claude

> "task_004를 처리해줘. 주문 처리 로직을 독립 서비스로 만들어줘."

3단계: 진행 상황 모니터링

1
2
3
4
5
6
7
8
9
10
# 터미널 1 (메인 세션)
> Ctrl+T (작업 목록 확인)

현재 상태:
[✓] task_001: 도메인 경계 분석 및 문서화 (completed)
[▶] task_002: 인증/인가 서비스 분리 (in_progress, 75% - session_xyz)
[▶] task_003: 사용자 관리 서비스 분리 (in_progress, 60% - session_abc)
[▶] task_004: 주문 처리 서비스 분리 (in_progress, 45% - session_def)
[⏸] task_005: 결제 서비스 분리 (pending)
...

4단계: 차단 사항 처리

만약 task_003이 예기치 않은 의존성으로 인해 차단되었다면:

1
2
3
4
5
6
7
8
9
# 터미널 3
> "task_003이 레거시 세션 관리 라이브러리에 의존하고 있어서 진행이 어려워. 
   이 문제를 별도 작업으로 분리하고, task_003을 blocked 상태로 변경해줘."

# Claude가 자동으로:
# 1. task_003의 상태를 'blocked'로 변경
# 2. 차단 사유를 기록: "레거시 세션 라이브러리 의존성"
# 3. 새로운 task_011 생성: "세션 관리 라이브러리 마이그레이션"
# 4. task_003의 의존성에 task_011 추가

5단계: 의존성 해결 후 재개

1
2
3
4
5
6
7
# 터미널 5 (새로운 세션)
> "task_011을 처리해줘"
> [작업 완료]

# task_011이 완료되면 task_003은 자동으로 'pending' 상태로 전환
# 터미널 3에서:
> "task_003을 계속 진행해줘"

2. 시나리오: 여러 기능의 동시 개발

상황: 제품 로드맵에 따라 이번 스프린트에 3개의 주요 기능을 동시에 개발해야 합니다.

기능 목록:

  1. 다크 모드 지원
  2. 실시간 알림 시스템
  3. 사용자 프로필 페이지 개선

작업 설정:

1
2
3
4
5
6
7
# 터미널 1
claude

> "다음 3개 기능을 독립적인 작업 그룹으로 나눠줘:
   1. 다크 모드 지원 (task_001-010)
   2. 실시간 알림 (task_011-020)
   3. 프로필 개선 (task_021-030)"

병렬 개발:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 터미널 2: 다크 모드 전담
> "task_001부터 task_010까지 순서대로 처리해줘"
> [Claude가 배경 작업으로 전환되어 자동 진행]

# 터미널 3: 알림 시스템 전담
> "task_011부터 task_020까지 처리해줘"
> [별도 배경 작업으로 진행]

# 터미널 4: 프로필 개선 전담
> "task_021부터 task_030까지 처리해줘"
> [별도 배경 작업으로 진행]

# 터미널 1: 전체 관리 및 코드 리뷰
> "각 작업 그룹의 진행 상황을 요약해줘"
> "완료된 작업들의 코드 변경사항을 리뷰해줘"

작업 간 조율:

특정 작업이 다른 작업에 영향을 줄 수 있는 경우:

1
2
3
4
5
6
7
8
9
# 터미널 2에서 발견
> "task_005 (다크 모드 테마 컴포넌트 구현)가 완료되었는데, 
   이게 task_025 (프로필 페이지 스타일링)에도 적용되어야 할 것 같아.
   task_025의 의존성에 task_005를 추가해줘."

# 시스템이 자동으로:
# 1. task_025의 dependencies에 task_005 추가
# 2. task_005가 완료될 때까지 task_025는 대기 상태 유지
# 3. 터미널 4에 알림: "task_025가 task_005 완료를 기다리고 있습니다"

3. 시나리오: 장시간 실행 작업의 관리

상황: 전체 코드베이스에 대한 보안 취약점 스캔 및 자동 수정 작업을 수행합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 터미널 1
claude

> "전체 코드베이스를 스캔하고, 발견된 보안 취약점을 자동으로 수정하는 작업을 설정해줘.
   이 작업은 몇 시간 걸릴 수 있으니, 배경 작업으로 실행하고 진행 상황을 주기적으로 기록해줘."

# Claude가 task_001 생성: "보안 취약점 스캔 및 수정"
> "task_001을 시작하고, 매 30분마다 진행 상황을 노트에 추가해줘"

# Ctrl+B를 눌러 배경 작업으로 전환
# 이제 개발자는 다른 작업을 할 수 있음

# 2시간 후, 다시 확인
> Ctrl+T

[▶] task_001: 보안 취약점 스캔 및 수정 (in_progress, 67%)
    Notes:
    - 11:00: 스캔 시작, 총 1,247개 파일 분석 예정
    - 11:30: 312개 파일 완료, 15개 취약점 발견 (SQL injection: 8, XSS: 7)
    - 12:00: 624개 파일 완료, 31개 취약점 발견, 수정 시작
    - 12:30: 832개 파일 완료, 45개 취약점 중 28개 자동 수정 완료

환경 변수와 고급 설정

1. CLAUDE_CODE_TASK_LIST_ID

용도: 작업 목록의 ID를 명시적으로 지정합니다.

사용법:

1
2
export CLAUDE_CODE_TASK_LIST_ID="my_project_tasks"
claude

활용 시나리오:

1) 팀 협업: 여러 개발자가 같은 작업 목록을 공유하려면, 모두 같은 ID를 사용합니다.

1
2
3
4
5
6
7
# 개발자 A
export CLAUDE_CODE_TASK_LIST_ID="team_sprint_2024_01"

# 개발자 B
export CLAUDE_CODE_TASK_LIST_ID="team_sprint_2024_01"

# 둘 다 ~/.claude/tasks/team_sprint_2024_01/ 디렉토리를 사용

2) 프로젝트별 격리: 여러 프로젝트를 동시에 진행할 때, 각 프로젝트의 작업을 분리합니다.

1
2
3
4
5
# 프로젝트 A
export CLAUDE_CODE_TASK_LIST_ID="project_a"

# 프로젝트 B
export CLAUDE_CODE_TASK_LIST_ID="project_b"

3) 임시 실험: 메인 작업 목록에 영향을 주지 않고 실험적인 작업을 수행합니다.

1
export CLAUDE_CODE_TASK_LIST_ID="experimental_tasks"

2. CLAUDE_CODE_ENABLE_TASKS

용도: 새로운 테스크 시스템을 비활성화하고 기존 To-Do 시스템으로 되돌립니다.

사용법:

1
2
export CLAUDE_CODE_ENABLE_TASKS=false
claude

언제 사용하나요:

  1. 호환성 문제: 특정 스크립트나 도구가 기존 To-Do 시스템에 의존하는 경우
  2. 학습 곡선: 새로운 시스템에 익숙해지기 전에 기존 방식을 계속 사용하고 싶을 때
  3. 단순한 작업: 간단한 체크리스트만 필요한 경우

주의사항:

  • 이 환경 변수는 임시적인 하위 호환성을 위한 것으로, 향후 버전에서 제거될 수 있습니다.
  • 기존 To-Do 시스템은 더 이상 적극적으로 유지보수되지 않으므로, 가능한 한 빨리 새로운 시스템으로 전환하는 것이 권장됩니다.

3. CLAUDE_CODE_DISABLE_BACKGROUND_TASKS

용도: 모든 배경 작업 기능을 비활성화합니다.

사용법:

1
2
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=true
claude

효과:

  • Ctrl+B 단축키가 작동하지 않습니다
  • 장시간 실행 작업의 자동 배경 전환이 발생하지 않습니다
  • 모든 작업이 포그라운드에서 순차적으로 실행됩니다

사용 사례:

  • 디버깅이나 학습 목적으로 모든 작업의 실행 과정을 직접 관찰하고 싶을 때
  • 제한된 리소스 환경에서 여러 프로세스를 동시에 실행하고 싶지 않을 때

4. 기타 유용한 환경 변수

CLAUDE_CODE_TMPDIR:

1
export CLAUDE_CODE_TMPDIR="/path/to/custom/temp"

Claude Code의 임시 파일 저장 위치를 변경합니다. 기본 시스템 임시 디렉토리가 공간이 부족하거나, 특정 위치에 임시 파일을 저장해야 할 때 유용합니다.

CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS:

1
export CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS=50000

파일 읽기 도구의 최대 출력 토큰 수를 조정합니다. 대용량 파일을 처리할 때 이 값을 늘려야 할 수 있습니다.


기존 시스템과의 비교

1. To-Do 시스템 vs Task 시스템 비교표

특징To-Do 시스템 (구버전)Task 시스템 (2.1.16+)
영속성세션 종료 시 소멸파일 시스템에 영구 저장
세션 공유불가능여러 세션 간 실시간 공유
상태 관리체크/언체크만 가능pending, in_progress, completed, blocked, cancelled
우선순위미지원low, medium, high, critical
의존성 추적수동으로 관리시스템적으로 자동 관리
진행률 표시없음0-100% 정량적 표시
메모/주석제한적타임스탬프가 있는 시계열 메모
관련 파일미지원작업별 관련 파일 목록
병렬 처리불가능여러 세션에서 동시 처리
API/도구TodoWrite 단일 도구task_create, task_get, task_list, task_update
단축키Ctrl+T (토글)Ctrl+T (목록 표시)

2. 워크플로우 비교

시나리오: 10개 파일에 대한 리팩토링

구버전 (To-Do 시스템):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
claude

> "10개 파일을 리팩토링해줘"

# Claude가 To-Do 생성:
- [ ] File1.ts 리팩토링
- [ ] File2.ts 리팩토링
- [ ] File3.ts 리팩토링
...

# 문제점:
# 1. 세션 종료하면 목록 사라짐
# 2. 다른 터미널에서 작업 불가
# 3. 진행 상황 추적 어려움
# 4. File1 작업 중 오류 발생해도 상태 기록 불가

# 개발자가 직접:
> "File1 리팩토링 시작해줘"
> [작업 완료]
> "File1 체크해줘"
> [체크 표시]
> "File2 리팩토링 시작해줘"
> ...

신버전 (Task 시스템):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 터미널 1
claude

> "10개 파일 리팩토링을 각각 별도 작업으로 만들어줘"

# Claude가 task_001 ~ task_010 생성, 각각:
# - 명확한 제목과 설명
# - 관련 파일 경로 포함
# - 의존성 자동 감지 (필요한 경우)

# 터미널 2
> "task_001부터 task_005까지 처리해줘"
> [배경 작업으로 전환]

# 터미널 3
> "task_006부터 task_010까지 처리해줘"
> [배경 작업으로 전환]

# 장점:
# 1. 두 그룹이 병렬로 처리되어 시간 단축
# 2. 각 작업의 진행 상황이 실시간으로 기록됨
# 3. 세션 종료 후에도 진행 상황 보존
# 4. 오류 발생 시 해당 작업만 blocked 상태로 표시, 나머지는 계속 진행

3. 마이그레이션 가이드

기존 To-Do에서 Task로 전환하기:

  1. 점진적 도입:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    # 1단계: 새 프로젝트에서 Task 시스템 시도
    cd new_project
    claude
    # CLAUDE_CODE_ENABLE_TASKS는 기본적으로 true
       
    # 2단계: 기존 프로젝트에서도 사용해보기
    cd existing_project
    claude
    # 기존 To-Do 목록이 있다면 수동으로 Task로 변환
    
  2. To-Do를 Task로 변환:
    1
    2
    
    > "현재 To-Do 목록을 새로운 Task 형식으로 변환해줘.
       각 항목을 독립적인 task로 만들고, 적절한 우선순위와 의존성을 설정해줘."
    
  3. 워크플로우 조정:
    • 기존에 수동으로 체크하던 작업들을 task_update로 전환
    • 복잡한 작업은 여러 서브태스크로 분할
    • 정기적으로 Ctrl+T로 전체 진행 상황 확인
  4. 팀 협업 설정:
    1
    2
    
    # .bashrc 또는 .zshrc에 추가
    export CLAUDE_CODE_TASK_LIST_ID="team_project_$(basename $(pwd))"
    

Claude Code 2.1 전체 업데이트 컨텍스트

Claude Code 2.1.16의 테스크 매니지먼트 시스템은 전체 2.1 시리즈의 일부입니다. 이 시스템을 완전히 이해하려면 함께 도입된 다른 주요 기능들도 알아야 합니다.

1. Async Sub-agents (비동기 서브에이전트)

개념: 장시간 실행되는 작업을 배경으로 보내고, 메인 세션에서 계속 다른 작업을 할 수 있는 기능입니다.

작동 방식:

1
2
3
4
5
6
7
8
9
10
11
12
claude

> "전체 테스트 스위트 실행해줘"

# Claude: "이 작업은 시간이 걸릴 것으로 예상됩니다. 배경으로 전환할까요?"
# 또는 개발자가 직접 Ctrl+B를 눌러 배경 전환

> "그 사이에 src/api.ts의 타입 에러 확인해줘"
# 메인 세션은 즉시 응답하고 새로운 작업 시작

# 배경 작업 완료 시 알림:
# ✓ 테스트 완료: 312 passed, 0 failed

Task 시스템과의 통합:

배경 작업은 자동으로 Task로 변환될 수 있습니다:

1
2
3
4
5
6
7
> "대규모 리팩토링을 배경 작업으로 실행하고, 진행 상황을 task로 추적해줘"

# Claude가:
# 1. task_xxx 생성
# 2. 배경 서브에이전트 시작
# 3. 주기적으로 task 상태 업데이트
# 4. 완료 시 task를 completed로 표시

다중 배경 작업:

1
2
3
4
5
6
> Ctrl+T로 배경 작업 목록 확인

Background Tasks:
[▶] task_001: 테스트 스위트 실행 (45% - 약 10분 남음)
[▶] task_002: 린터 실행 (80% - 약 2분 남음)
[⏸] task_003: 문서 생성 (대기 중 - task_001 완료 후 시작)

2. Skills Hot Reload (스킬 핫 리로드)

개념: 세션을 재시작하지 않고도 스킬 파일의 변경사항이 즉시 반영됩니다.

Task 시스템과의 연계:

커스텀 스킬에서 Task 시스템을 활용할 수 있습니다:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ~/.claude/skills/deploy-workflow.md

---
name: deploy
description: 배포 워크플로우 실행
---

1. 현재 브랜치의 모든 변경사항 커밋 확인
2. task_create로 "배포 준비" 작업 생성
3. 린터 및 테스트 실행
4. task_update로 상태 업데이트
5. 빌드 실행
6. 스테이징 환경에 배포
7. smoke 테스트 실행
8. 성공 시 task를 completed로 표시

사용:

1
2
3
> /deploy
# 또는
> deploy를 실행해줘

3. Session Teleportation (세션 텔레포트)

개념: 웹 인터페이스의 Claude 세션을 터미널로 가져오거나, 그 반대도 가능합니다.

Task 시스템과의 통합:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 웹에서 작업하다가:
# task_001 ~ task_010 생성

# 터미널로 전환:
claude
> /teleport

# Claude가 자동으로:
# 1. 웹 세션의 브랜치로 체크아웃
# 2. 대화 히스토리 로드
# 3. 작업 목록 동기화

> Ctrl+T
# 웹에서 만든 task_001 ~ task_010이 모두 보임

4. Hooks System (훅 시스템)

개념: 특정 이벤트 발생 시 자동으로 실행되는 스크립트를 정의할 수 있습니다.

Task와 연계한 활용:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# .claude/hooks/on-task-complete.sh

#!/bin/bash
# 작업 완료 시 자동으로 실행

TASK_ID=$1
TASK_TITLE=$2

# Slack에 알림 전송
curl -X POST $SLACK_WEBHOOK \
  -d "{"text": "Task $TASK_ID ($TASK_TITLE) completed!"}"

# Jira 티켓 업데이트
jira-cli update $TASK_ID --status "Done"

# Git 커밋 생성
git add .
git commit -m "Complete $TASK_TITLE"

설정:

1
2
3
4
5
6
7
8
9
10
# .claude/config.yaml

hooks:
  task:
    onComplete:
      - .claude/hooks/on-task-complete.sh
    onCreate:
      - .claude/hooks/log-task-creation.sh
    onBlocked:
      - .claude/hooks/notify-blocked.sh

5. Managed Settings (관리 설정)

개념: 팀 전체에 공통 설정을 배포하고 적용할 수 있습니다.

Task 시스템 표준화:

1
2
3
4
5
6
7
8
9
10
11
12
13
// /path/to/managed-settings.json

{
  "tasks": {
    "defaultPriority": "medium",
    "autoBackgroundThreshold": 300,  // 5 이상 걸리는 작업 자동 배경 전환
    "statusUpdateInterval": 1800,    // 30분마다 진행 상황 자동 기록
    "dependencyChecking": "strict",  // 의존성 엄격하게 검증
    "completionHooks": [
      "on-task-complete.sh"
    ]
  }
}

적용:

1
2
3
4
5
# Windows
set CLAUDE_CODE_MANAGED_SETTINGS=C:\path\to\managed-settings.json

# macOS/Linux
export CLAUDE_CODE_MANAGED_SETTINGS=/path/to/managed-settings.json

커뮤니티 에코시스템과 서드파티 도구

Claude Code의 Task 시스템이 도입되면서, 커뮤니티에서도 이를 활용하는 다양한 도구들이 등장했습니다.

1. CLEO (Command Line Entity Orchestrator)

개요: CLEO는 Claude Code를 위한 프로덕션 급 태스크 관리 시스템으로, 환각 방지 기능을 포함합니다.

주요 기능:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 작업 생성
cleo add "인증 기능 구현" --priority high

# 작업 목록 (기본 JSON 출력)
cleo list

# 상태별 필터링
cleo list --status pending

# 작업 업데이트
cleo update T001 --labels "backend,security"

# 작업 완료
cleo complete T001

# 세션 워크플로우
cleo session start
cleo focus set T001  # 한 번에 하나의 작업만 활성화
cleo focus note "JWT 검증 작업 중"
cleo session end

분석 및 계획:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 프로젝트 개요
cleo dash

# 작업 우선순위 분석 (leverage scoring)
cleo analyze

# 자동으로 가장 중요한 작업에 포커스
cleo analyze --auto-focus

# 다음에 할 작업 추천
cleo next --explain

# 크리티컬 패스 분석
cleo blockers analyze

Claude Code와의 통합:

CLEO는 Claude Code의 기본 todo 시스템과 양방향 동기화를 지원합니다:

1
2
3
4
5
6
7
8
9
10
11
# CLEO → Claude Code
cleo sync --inject

# 포커스된 작업만 전송
cleo sync --inject --focused-only

# Claude Code → CLEO
cleo sync --extract

# 변경 사항 미리보기
cleo sync --extract --dry-run

환각 방지 메커니즘:

1
2
3
4
5
6
7
8
9
10
11
# Agent가 작업 전에 검증
if cleo exists T042 --quiet; then
  cleo update T042 --notes "Progress update"
else
  echo "ERROR: Task T042 not found" >&2
  exit 1
fi

# 구조화된 출력 파싱
ACTIVE=$(cleo list | jq -r '.tasks[] | select(.status=="active") | .id')
cleo focus note "Working on $ACTIVE"

컨텍스트 효율적인 검색:

1
2
3
4
5
# 퍼지 검색 (~1KB vs 전체 목록의 355KB)
cleo find "auth"

# ID로 검색
cleo find --id 42  # T42, T420, T421... 찾기

2. Claude Task Master

개요: Cursor AI, Lovable, Windsurf, Roo 등 다양한 AI 개발 도구와 통합되는 태스크 관리 시스템입니다.

MCP (Model Context Protocol) 통합:

1
2
3
4
5
6
7
8
// mcp.json 설정
{
  "models": {
    "main": "claude-sonnet-4",
    "research": "claude-opus-4",
    "fallback": "claude-sonnet-4"
  }
}

AI 기반 자동화:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1. 기능 계획
csdd agent plan --feature "이메일/비밀번호 로그인"
# → .specs/requirements.md 생성

# 2. 설계
csdd agent design
# → .specs/design.md 생성

# 3. 작업 생성
csdd agent tasks
# → .specs/tasks.md 생성

# 4. 구현
csdd agent implement TASK-001
# → 실제 코드 생성

# 5. 완료
csdd task complete TASK-001

파일 감시자:

1
2
3
4
5
6
7
8
9
10
11
# 파일 변경 시 자동으로 프롬프트 생성
csdd watch

# 설정
{
  "watch": {
    "paths": ["src/**/*", "lib/**/*"],
    "ignored": ["**/node_modules/**"],
    "debounceMs": 2000
  }
}

Git 통합:

1
2
3
4
5
6
7
8
# Pre-commit hook
git add .
# → 자동으로 체크리스트 표시

git commit -m "feat(auth): JWT 인증 추가 (TASK-001)"

git push
# → Push 전 검토 체크리스트 표시

3. Claude SDD (Spec-Driven Development)

개요: 사양 기반 개발을 자동화하는 도구로, Claude Code와 긴밀하게 통합됩니다.

초기화:

1
2
3
4
5
6
7
csdd init

# 프로젝트 구조:
.specs/
  ├── requirements.md  # 요구사항
  ├── design.md        # 기술 설계
  └── tasks.md         # 구현 작업

작업 관리:

1
2
3
4
5
6
7
8
9
10
11
12
# 작업 생성 (대화형)
csdd task create

# 작업 목록
csdd task list
csdd task list --status done

# 작업 상세 보기
csdd task show TASK-001

# 작업 완료
csdd task complete

AI 에이전트 워크플로우:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 전체 자동화 예시

# 1. 요구사항 정의 (사람)
# Claude Code: "사용자 인증 요구사항을 .specs/requirements.md에 작성해줘"

# 2. 기술 설계 (AI)
# Claude Code: ".specs/design.md에 기술 설계 작성해줘"

# 3. 작업 생성 (AI)
csdd agent tasks
# → TASK-001부터 TASK-010까지 자동 생성

# 4. 구현 (AI)
csdd agent implement TASK-001
# → 실제 코드 작성

# 5. 검토 (사람 + AI)
csdd review
# → 구현 검증 체크리스트 생성

# 6. 완료 처리
csdd task complete TASK-001

파일 감시자와 자동 프롬프트:

1
2
3
4
5
6
# 감시자 시작
csdd watch

# src/auth/login.ts 파일 수정 시:
# → .claude-hooks/auto-prompts.txt에 자동으로 추가:
#    "login.ts가 수정되었습니다. design.md의 로그인 로직 사양을 따르는지 확인해주세요."

품질 설정:

1
2
3
4
5
6
7
{
  "quality": {
    "minTestCoverage": 80,
    "lintOnCommit": true,
    "requireSpecs": true
  }
}

4. Custom Workflow Systems

개발자들이 직접 만든 커스텀 워크플로우 시스템들도 있습니다.

Nick Tune의 Lightweight Task Workflow:

상태 머신을 사용하여 Claude의 행동을 명확하게 정의합니다:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# .claude/skills/task-workflow.md

🚨 STATE DEFINITIONS - FOLLOW EXACTLY 🚨

CHECK_STATUS:
  ACTIONS:
    1. Run pwd
    2. Read .claude/session.md
    3. Look at Status field
    4. IF Status="Complete" OR "ready to commit" → Go to AWAITING_COMMIT
    5. ELSE → Go to WORKING

WORKING:
  ACTIONS:
    1. Read current task from session.md
    2. Execute task
    3. Update session.md with progress
    4. IF task complete → Update Status to "Complete"
    5. RETURN to CHECK_STATUS

AWAITING_COMMIT:
  ACTIONS:
    1. Show changes summary
    2. Ask user for commit confirmation
    3. IF confirmed → Run git commit
    4. Update session.md Status to "Committed"

사용:

1
2
3
claude
> continue
# Claude가 자동으로 CHECK_STATUS → WORKING → ... 순서로 진행

Teresa Torres의 Obsidian 통합:

작업 관리를 Obsidian 노트와 연동하여 시각화합니다:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# .claude/hooks/on-task-create.sh
#!/bin/bash

TASK_ID=$1
TASK_TITLE=$2

# Obsidian vault에 작업 노트 생성
cat > "$OBSIDIAN_VAULT/Tasks/$TASK_ID.md" << EOF
---
id: $TASK_ID
title: $TASK_TITLE
status: pending
created: $(date -I)
---

# $TASK_TITLE

## Description

## Progress

## Related Notes
EOF

실무 적용 가이드

1. 프로젝트 구조 설정

권장 디렉토리 구조:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my-project/
├── .claude/
│   ├── config.yaml          # Claude Code 설정
│   ├── skills/              # 프로젝트별 스킬
│   │   ├── deploy.md
│   │   ├── test-workflow.md
│   │   └── refactor.md
│   ├── hooks/               # 이벤트 훅
│   │   ├── on-task-complete.sh
│   │   ├── on-task-blocked.sh
│   │   └── pre-commit.sh
│   └── session.md           # 현재 세션 상태
├── .specs/                  # 사양 문서 (선택사항)
│   ├── requirements.md
│   ├── design.md
│   └── tasks.md
└── ... (프로젝트 파일들)

초기 설정:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
cd my-project

# 디렉토리 생성
mkdir -p .claude/{skills,hooks}

# 기본 config 생성
cat > .claude/config.yaml << 'EOF'
tasks:
  enabled: true
  defaultPriority: medium
  autoBackground: true
  autoBackgroundThreshold: 300  # 5분

hooks:
  task:
    onCreate: []
    onComplete: []
    onBlocked: []

skills:
  autoload: true
  paths:
    - .claude/skills
    - ~/.claude/skills
EOF

2. 팀 워크플로우 설정

단계 1: 공통 Task List ID 설정

팀 전체가 공유할 환경 변수를 설정 파일에 추가합니다:

1
2
3
4
5
6
# 각 팀원의 .bashrc 또는 .zshrc에 추가
export CLAUDE_CODE_TASK_LIST_ID="team_project_name_$(date +%Y%m)"

# 또는 프로젝트별로:
# .envrc (direnv 사용 시)
export CLAUDE_CODE_TASK_LIST_ID="team_my_project"

단계 2: Task 템플릿 정의

1
2
3
4
5
6
7
8
9
10
11
12
# .claude/templates/task-template.yaml

title: ""
description: ""
priority: medium
assignedTo: ""
labels: []
estimatedHours: 0
dependencies: []
acceptanceCriteria:
  - ""
technicalNotes: ""

단계 3: 작업 생성 스킬

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# .claude/skills/create-task.md

---
name: create-task
description: 템플릿을 사용하여 새 작업 생성
---

1. 사용자에게 작업 정보 요청:
   - 제목
   - 설명
   - 우선순위
   - 예상 소요 시간
   - 담당자

2. 템플릿 로드: .claude/templates/task-template.yaml

3. task_create 도구 사용하여 작업 생성

4. Slack/Discord에 알림 전송 (옵션)

5. 생성된 작업 ID 반환

3. 일일 스탠드업 자동화

아침 워크플로우:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# .claude/skills/morning-standup.md

---
name: standup
description: 일일 스탠드업 준비
---

1. task_list로 어제 작업한 항목 조회
   - status: completed
   - updated_at: 지난 24시간

2. task_list로 오늘 할 작업 조회
   - status: in_progress 또는 pending
   - assigned_to: 현재 사용자

3. task_list로 차단된 작업 조회
   - status: blocked

4. 다음 형식으로 보고서 생성:

# 스탠드업 - [날짜]

## 어제 완료한 작업

  • [task_001] 사용자 인증 API 구현
  • [task_005] 단위 테스트 추가

## 오늘 할 작업

  • [task_007] 프론트엔드 로그인 페이지
  • [task_009] 통합 테스트

## 차단 사항

  • [task_012] 서드파티 API 키 대기 중 ```
  1. 보고서를 Slack에 자동 전송 (옵션) ```

사용:

1
2
3
4
5
claude
> /standup

# 또는
> standup 준비해줘

4. 코드 리뷰 워크플로우

리뷰 체크리스트 자동 생성:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# .claude/skills/code-review.md

---
name: review
description: 코드 리뷰 체크리스트 생성
---

주어진 작업 ID에 대해:

1. task_get으로 작업 정보 조회
2. related_files에서 변경된 파일 목록 확인
3. 각 파일에 대해 git diff 실행
4. 다음 항목을 체크하는 리뷰 체크리스트 생성:
   - [ ] 코드 스타일 가이드 준수
   - [ ] 단위 테스트 포함
   - [ ] 문서화 업데이트
   - [ ] Breaking change 확인
   - [ ] 성능 영향 분석
   - [ ] 보안 이슈 검토
   - [ ] 접근성 고려 (해당시)
5. 체크리스트를 마크다운으로 출력
6. PR 설명에 자동 삽입 (옵션)

5. CI/CD 통합

GitHub Actions 예시:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# .github/workflows/claude-tasks.yml

name: Claude Tasks CI

on:
  push:
    branches: [ main, develop ]
  pull_request:

jobs:
  verify-tasks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Setup Claude Code
        run: |
          npm install -g @anthropic-ai/claude-code
          
      - name: Verify Task Completion
        env:
          CLAUDE_CODE_TASK_LIST_ID: $
        run: |
          # PR과 연관된 작업들이 모두 완료되었는지 확인
          claude verify-pr-tasks --pr $
          
      - name: Run Task-specific Tests
        run: |
          # 작업에 명시된 테스트 실행
          claude run-task-tests --pr $

Jenkins 파이프라인:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Jenkinsfile

pipeline {
    agent any
    
    environment {
        CLAUDE_CODE_TASK_LIST_ID = "jenkins_${env.JOB_NAME}"
    }
    
    stages {
        stage('Task Validation') {
            steps {
                script {
                    // 각 커밋이 작업 ID를 참조하는지 확인
                    sh '''
                        for commit in $(git log --format=%H origin/main..HEAD); do
                            message=$(git log -1 --format=%B $commit)
                            if ! echo "$message" | grep -qE "TASK-[0-9]+"; then
                                echo "Error: Commit $commit missing task reference"
                                exit 1
                            fi
                        done
                    '''
                }
            }
        }
        
        stage('Task Progress Update') {
            steps {
                sh 'claude update-task-from-commit'
            }
        }
    }
}

6. 메트릭 및 리포팅

작업 통계 대시보드:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# .claude/skills/metrics.md

작업 메트릭 생성:

1. task_list로 모든 작업 조회
2. 다음 통계 계산:
   - 총 작업 수
   - 상태별 분포 (pending, in_progress, completed, blocked)
   - 우선순위별 분포
   - 평균 완료 시간
   - 담당자별 작업 부하
   - 차단 사유 분석
3. 마크다운 테이블로 출력
4. 선택적으로 차트 생성

주간 리포트 자동 생성:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
# .claude/scripts/weekly-report.sh

WEEK_START=$(date -d "7 days ago" +%Y-%m-%d)
WEEK_END=$(date +%Y-%m-%d)

claude << EOF
다음 정보로 주간 리포트를 작성해줘:

1. $WEEK_START부터 $WEEK_END까지의 작업 통계
2. 완료된 주요 작업 목록
3. 진행 중인 작업 현황
4. 차단 사항 및 해결 계획
5. 다음 주 계획

리포트를 마크다운 형식으로 작성하고, 
./reports/week-$(date +%Y%W).md 파일로 저장해줘.
EOF

문제 해결과 최적화 팁

1. 일반적인 문제들

문제: 작업 목록이 표시되지 않음

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 진단
echo $CLAUDE_CODE_TASK_LIST_ID
ls -la ~/.claude/tasks/

# 해결책
# 1. 환경 변수가 올바르게 설정되어 있는지 확인
export CLAUDE_CODE_TASK_LIST_ID="your_project"

# 2. 디렉토리 권한 확인
chmod 755 ~/.claude/tasks

# 3. Task 시스템이 활성화되어 있는지 확인
echo $CLAUDE_CODE_ENABLE_TASKS  # 비어있거나 'true'여야 함

# 4. Claude Code 재시작
claude --reset

문제: 세션 간 동기화가 되지 않음

1
2
3
4
5
6
7
8
9
10
11
# 원인: 파일 시스템 접근 권한 또는 캐싱 문제

# 해결책 1: 강제 새로고침
claude
> Ctrl+T를 두 번 빠르게 눌러 강제 새로고침

# 해결책 2: 파일 직접 확인
cat ~/.claude/tasks/your_project/task_001.json

# 해결책 3: 네트워크 드라이브 사용 시
# 로컬 디스크로 작업 디렉토리 변경 고려

문제: 작업이 너무 많아서 느림

1
2
3
4
5
6
7
8
9
# 완료된 작업 아카이빙
claude

> "completed 상태의 작업들을 별도 디렉토리로 아카이빙해줘"

# 또는 수동으로:
mkdir ~/.claude/tasks/your_project/archive
mv ~/.claude/tasks/your_project/task_0{01..050}.json \
   ~/.claude/tasks/your_project/archive/

2. 성능 최적화

대량 작업 처리:

1
2
3
4
5
6
7
8
9
# 나쁜 예: 순차적으로 100개 작업 생성
for i in {1..100}; do
  claude
  > "task_$i 생성해줘"
done

# 좋은 예: 배치로 한 번에 생성
claude
> "다음 100개 파일을 각각 별도 작업으로 생성해줘: $(ls *.ts)"

컨텍스트 관리:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 작업 설명을 간결하게 유지
# 나쁜 예:
description: """
이 작업은 사용자 인증 시스템을 구현하는 것입니다.
JWT를 사용하여 토큰 기반 인증을 구현하고,
리프레시 토큰 메커니즘도 추가해야 합니다.
또한 비밀번호 해싱은 bcrypt를 사용하고,
토큰 만료 시간은 설정 가능하게 만들어야 합니다.
... (더 긴 설명)
"""

# 좋은 예:
description: "JWT 기반 인증 시스템 구현"
technicalNotes: "bcrypt, 리프레시 토큰, 설정 가능한 만료 시간"
related_files: ["docs/auth-spec.md"]  # 상세 내용은 별도 문서로

파일 시스템 최적화:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 정기적인 정리
# .claude/maintenance.sh
#!/bin/bash

# 30일 이상 된 완료 작업 아카이빙
find ~/.claude/tasks/*/task_*.json -type f -mtime +30 | while read f; do
  if jq -e '.status == "completed"' "$f" > /dev/null; then
    project=$(dirname "$f")
    mkdir -p "$project/archive"
    mv "$f" "$project/archive/"
  fi
done

# 오래된 로그 삭제
find ~/.claude/logs -name "*.log" -mtime +90 -delete

3. 보안 고려사항

민감 정보 처리:

1
2
3
4
5
6
7
8
9
10
11
12
# 나쁜 예: 작업 설명에 민감 정보 포함
task_create(
  title="API 키 업데이트",
  description="새 API 키: sk_live_abcd1234..."  # 위험!
)

# 좋은 예: 환경 변수 참조
task_create(
  title="API 키 업데이트",
  description="환경 변수 API_KEY를 .env.example에 따라 업데이트",
  notes="실제 키는 1Password에서 확인"
)

접근 권한 관리:

1
2
3
4
5
6
# Task 파일의 권한 적절히 설정
chmod 600 ~/.claude/tasks/*/*.json  # 소유자만 읽기/쓰기

# 팀 공유 시
# setfacl을 사용하여 특정 그룹에만 접근 허용
setfacl -R -m g:dev-team:rw ~/.claude/tasks/shared_project

4. 디버깅 팁

상세 로깅 활성화:

1
2
3
4
5
6
7
8
# 환경 변수로 디버그 모드 활성화
export CLAUDE_CODE_DEBUG=true
export CLAUDE_CODE_LOG_LEVEL=debug

claude

# 로그 위치: ~/.claude/logs/
tail -f ~/.claude/logs/claude-$(date +%Y%m%d).log

Task 파일 직접 검사:

1
2
3
4
5
6
7
8
9
10
# JSON 파일 예쁘게 출력
cat ~/.claude/tasks/your_project/task_001.json | jq '.'

# 특정 필드만 추출
cat ~/.claude/tasks/your_project/task_001.json | jq '.status, .progress'

# 모든 작업의 상태 요약
for f in ~/.claude/tasks/your_project/*.json; do
  echo "$(basename $f): $(jq -r '.status' $f)"
done

세션 상태 확인:

1
2
3
4
claude
> "현재 세션 ID와 연결된 작업 목록을 보여줘"
> "작업 파일의 실제 경로를 알려줘"
> "작업 동기화 상태를 진단해줘"

5. 고급 활용 팁

조건부 작업 실행:

1
2
3
4
5
6
7
8
9
10
11
12
# .claude/skills/conditional-task.md

작업 실행 전 조건 확인:

1. task_get으로 작업 정보 조회
2. 의존성 확인:
   - dependencies의 모든 작업이 completed인지 확인
   - 하나라도 미완료면 경고 출력 후 중단
3. 환경 확인:
   - 필요한 환경 변수 존재 확인
   - 필수 도구(npm, docker 등) 설치 확인
4. 조건 만족 시에만 작업 진행

작업 템플릿 시스템:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# .claude/templates/feature-task-template.sh
#!/bin/bash

FEATURE_NAME=$1

# 기능 구현에 필요한 표준 작업 세트 생성
claude << EOF
다음 작업들을 순서대로 생성해줘:

1. "$FEATURE_NAME 요구사항 분석"
   - 우선순위: high
   - 담당: product-team

2. "$FEATURE_NAME 기술 설계"
   - 의존성: 작업 1
   - 담당: architecture-team

3. "$FEATURE_NAME 백엔드 구현"
   - 의존성: 작업 2
   - 담당: backend-team

4. "$FEATURE_NAME 프론트엔드 구현"
   - 의존성: 작업 2
   - 담당: frontend-team

5. "$FEATURE_NAME 통합 테스트"
   - 의존성: 작업 3, 4
   - 담당: qa-team

6. "$FEATURE_NAME 문서 작성"
   - 의존성: 작업 5
   - 담당: docs-team

7. "$FEATURE_NAME 배포"
   - 의존성: 작업 6
   - 담당: devops-team
EOF

사용:

1
./.claude/templates/feature-task-template.sh "사용자 대시보드"

작업 체인 실행:

1
2
3
4
5
6
7
8
9
10
11
# .claude/skills/task-chain.md

주어진 작업 ID부터 시작하여, 의존성 그래프를 따라
모든 의존 작업들을 자동으로 순차 실행:

1. task_get으로 시작 작업 조회
2. dependencies 재귀적으로 확인
3. 위상 정렬(topological sort)로 실행 순서 결정
4. 각 작업을 순서대로 실행
5. 중간에 차단되면 blocked 표시 후 다음 독립 작업으로 이동
6. 모든 작업 완료 시 요약 보고

사용:

1
2
claude
> "task_010부터 역방향으로 모든 의존 작업을 실행해줘"

결론

Claude Code 2.1.16의 테스크 매니지먼트 시스템은 AI 기반 개발 도구의 새로운 기준을 제시합니다. 단순한 할 일 목록 관리를 넘어서, 대규모 프로젝트를 여러 AI 에이전트가 협업하여 처리할 수 있는 완전한 인프라를 제공합니다.

핵심 장점 요약

  1. 영속성: 세션이 종료되어도 작업 상태가 보존되어, 언제든 중단한 지점부터 재개할 수 있습니다.

  2. 협업: 여러 개발자나 여러 Claude 세션이 같은 작업 목록을 공유하고 실시간으로 동기화할 수 있습니다.

  3. 확장성: 수백 개의 작업을 체계적으로 관리하고, 의존성 그래프를 통해 자동으로 실행 순서를 최적화합니다.

  4. 투명성: 각 작업의 진행 상황, 차단 사유, 관련 파일 등이 구조화된 형태로 기록되어 프로젝트 상태를 한눈에 파악할 수 있습니다.

  5. 자동화: 훅 시스템과 스킬을 통해 반복적인 워크플로우를 자동화하고, 팀 전체의 생산성을 향상시킬 수 있습니다.

향후 전망

Claude Code의 테스크 시스템은 계속 발전할 것으로 예상됩니다:

  • 더 강력한 AI 오케스트레이션: 여러 AI 모델을 조합하여 복잡한 작업을 자동으로 분배하고 실행
  • 클라우드 동기화: 팀 전체가 클라우드를 통해 실시간으로 작업을 공유
  • 고급 분석: 작업 패턴 분석을 통한 생산성 인사이트 제공
  • 외부 도구 통합 확대: Jira, Linear, Asana 등 프로젝트 관리 도구와의 네이티브 통합

AI 기반 개발의 미래는 단순히 “AI가 코드를 작성하는 것”이 아니라, “AI와 인간이 체계적으로 협업하는 것”입니다. Claude Code 2.1.16의 테스크 매니지먼트 시스템은 바로 그 미래를 향한 중요한 발걸음입니다.


작성 일자: 2026-01-25

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.