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 기록 |
후행 작업
- 3-3_대시보드-데이터-API — Velocity 데이터 활용