ID: key_26_22_05_25_P4_4_4 Created date: 5월 25 2026 월요일
연관 문서
개요
릴리스 버전 및 마일스톤을 관리하는 기능을 구현한다.
버전에 이슈를 연결하고 릴리스 노트를 자동 생성한다.
- 예상 소요: 4~5일
- 선행 조건: Phase 3 완료
Claude Code 작업 수행서
작업 지시
CIRA 서버 + UI에 버전 및 마일스톤 관리 기능을 구현해줘.
[서버 수행 작업]
1. DB 마이그레이션
V230__create_versions_milestones.sql:
versions: id(UUID), project_id(FK NOT NULL), version_name(VARCHAR 50 NOT NULL),
description(TEXT), status(VARCHAR 50 — UNRELEASED/RELEASED/ARCHIVED),
planned_release_date(DATE), released_at(TIMESTAMPTZ),
UNIQUE(project_id, version_name)
issue_versions: issue_id(FK→issues), version_id(FK→versions),
relationship_type(VARCHAR 50 — FIX_VERSION/AFFECTS_VERSION),
PK(issue_id, version_id, relationship_type)
milestones: id(UUID), project_id(FK NOT NULL), name(VARCHAR 200 NOT NULL),
description(TEXT), due_date(DATE), status(VARCHAR 50 — OPEN/CLOSED)
milestone_issues: milestone_id(FK→milestones), issue_id(FK→issues),
PK(milestone_id, issue_id)
2. 버전 API
POST /api/v1/projects/{projectId}/versions — 버전 생성
GET /api/v1/projects/{projectId}/versions — 버전 목록
PUT /api/v1/versions/{versionId} — 버전 수정
POST /api/v1/versions/{versionId}/release — 릴리스 처리
POST /api/v1/versions/{versionId}/archive — 아카이브
GET /api/v1/versions/{versionId}/release-notes — 릴리스 노트 생성
3. 릴리스 노트 자동 생성
GET /api/v1/versions/{versionId}/release-notes
로직:
- FIX_VERSION으로 연결된 Done 이슈 조회
- 이슈 타입별 그룹화:
* 🆕 New Features (Story)
* 🐛 Bug Fixes (Bug)
* ⚡ Improvements (Task)
- 마크다운 포맷으로 반환
4. 마일스톤 API
CRUD: /api/v1/projects/{projectId}/milestones
GET /api/v1/milestones/{milestoneId}/progress — 진행률
(완료 이슈 수 / 전체 이슈 수)
[UI 수행 작업]
5. 버전 관리 페이지
파일: src/app/(main)/projects/[projectId]/versions/page.tsx
- 버전 목록 (상태별 필터: 미출시/출시/아카이브)
- 버전 카드: 이름, 출시 예정일, 이슈 수, 진행률 바
- "릴리스" 버튼 → 확인 다이얼로그 → 릴리스 처리
- "릴리스 노트 복사" 버튼 → 마크다운 클립보드 복사
6. 이슈-버전 연결 UI
이슈 상세 페이지 사이드바에 추가:
- Fix Version 선택 드롭다운 (다중 선택 가능)
- Affects Version 선택 드롭다운
7. 마일스톤 타임라인
파일: src/components/milestone/MilestoneTimeline.tsx
- 수평 타임라인 (due_date 기준)
- 마일스톤 노드 (완료율 게이지)
- 오늘 날짜 수직선
- 마감 초과 마일스톤 빨간색 강조
완료 기준
| 항목 | 기준 |
|---|---|
| 버전 CRUD + 상태 전이 | 미출시→출시→아카이브 |
| 이슈-버전 연결 | Fix/Affects 다중 선택 |
| 릴리스 노트 | 타입별 그룹 마크다운 생성 |
| 마일스톤 타임라인 | 날짜 기준 시각화 |
| 진행률 | 완료/전체 이슈 비율 표시 |