ID: key_26_22_05_25_P2_2_4 Created date: 5월 25 2026 월요일

연관 문서


개요

스프린트 생성·시작·종료 API 및 UI를 구현한다.
백로그 관리와 스프린트 이슈 할당을 포함한다.

  • 예상 소요: 4~5일
  • 선행 조건: 2-1_칸반-보드-API 완료
  • 완료 기준: 스프린트 생성 → 이슈 할당 → 시작 → 칸반 보드 연동 확인

Claude Code 작업 수행서

작업 지시

CIRA 서버 + UI에 스프린트 관리 기능을 구현해줘.

[서버 수행 작업]

1. 스프린트 API
   POST   /api/v1/projects/{projectId}/sprints         — 스프린트 생성
   GET    /api/v1/projects/{projectId}/sprints         — 스프린트 목록
   GET    /api/v1/projects/{projectId}/sprints/active  — 현재 활성 스프린트
   PUT    /api/v1/sprints/{sprintId}                   — 스프린트 수정 (이름, 날짜, 목표)
   POST   /api/v1/sprints/{sprintId}/start             — 스프린트 시작
   POST   /api/v1/sprints/{sprintId}/complete          — 스프린트 종료
   GET    /api/v1/projects/{projectId}/backlog         — 백로그 이슈 목록
   PUT    /api/v1/issues/{issueId}/sprint              — 이슈→스프린트 할당

2. 스프린트 상태 전이
   PLANNED → ACTIVE (start): 프로젝트당 동시에 1개만 ACTIVE 가능
   ACTIVE → COMPLETED (complete):
   - 미완료 이슈(Done 상태 아님)를 다음 스프린트 또는 백로그로 이동
   - sprint_metrics에 velocity, completed_points 기록
   - CompleteSprintRequest: { incompleteIssueAction: "BACKLOG" | "NEXT_SPRINT", nextSprintId?: UUID }

3. 백로그 조회
   GET /api/v1/projects/{projectId}/backlog
   - sprint_id IS NULL 인 이슈 목록
   - 우선순위 DESC 정렬
   - 페이지네이션

4. Velocity 계산
   스프린트 종료 시:
   velocity = 완료된 이슈의 story_points 합계
   sprint_metrics 테이블 UPDATE

[UI 수행 작업]

5. 백로그 페이지
   파일: src/app/(main)/projects/[projectId]/backlog/page.tsx
   구성:
   - 상단: 활성 스프린트 섹션 (있을 경우)
     * 스프린트 이름, 목표, 날짜, 완료율 프로그레스 바
     * "스프린트 종료" 버튼
   - 중간: 대기 스프린트 섹션 (PLANNED)
     * "스프린트 시작" 버튼
     * 이슈 목록 (드래그 가능)
   - 하단: 백로그 섹션
     * 이슈 목록 (우선순위 순)
     * "스프린트에 추가" 컨텍스트 메뉴 (우클릭)

6. 스프린트 이슈 드래그
   - @hello-pangea/dnd로 백로그 ↔ 스프린트 간 이슈 이동
   - 이동 시 PUT /issues/{id}/sprint 호출

7. 스프린트 생성 모달
   파일: src/components/sprint/CreateSprintModal.tsx
   필드:
   - 스프린트 이름 (기본: "Sprint {n}")
   - 목표 (텍스트)
   - 시작일 / 종료일 (DatePicker)

8. 스프린트 종료 모달
   파일: src/components/sprint/CompleteSprintModal.tsx
   - 미완료 이슈 목록 표시
   - 처리 방법 선택: 백로그로 이동 / 다음 스프린트로 이동
   - 확인 버튼 → POST /sprints/{id}/complete

9. 스프린트 통계 카드
   - 총 이슈 수 / 완료 이슈 수
   - 총 스토리 포인트 / 완료 스토리 포인트
   - 남은 일수

완료 기준

항목기준
스프린트 생성/시작/종료상태 전이 정상 동작
동시 활성 스프린트 방지2개 시작 시 에러
백로그 ↔ 스프린트 이동D&D 및 컨텍스트 메뉴
종료 후 미완료 처리백로그/다음 스프린트 이동
Velocity 계산sprint_metrics 기록

후행 작업