9.4 KiB
9.4 KiB
ZELLYY - Git 이슈 트래킹 시스템
개요
ZELLYY 프로젝트는 GitHub를 활용하여 이슈 트래킹 및 프로젝트 관리를 진행합니다. 이 문서는 개발팀이 일관된 방식으로 이슈를 생성, 관리, 해결하기 위한 가이드라인을 제공합니다.
이슈 유형 분류
ZELLYY 프로젝트에서는 다음과 같은 이슈 유형을 사용합니다:
1. 기능 요청 (Feature Request)
새로운 기능 개발이나 기존 기능 확장에 관한 이슈입니다.
2. 버그 리포트 (Bug Report)
애플리케이션의 오작동이나 예상치 못한 동작에 관한 이슈입니다.
3. 개선 사항 (Enhancement)
기존 기능의 사용성, 성능, 디자인 등을 개선하기 위한 이슈입니다.
4. 문서화 (Documentation)
코드, API, 사용자 가이드 등의 문서화에 관한 이슈입니다.
5. 기술 부채 (Technical Debt)
코드 리팩토링, 아키텍처 개선 등 기술적 부채 해소를 위한 이슈입니다.
6. 질문 (Question)
프로젝트에 관한 질문이나 논의가 필요한 사항에 대한 이슈입니다.
이슈 라벨 시스템
우선순위 라벨
priority:critical- 즉시 해결해야 하는 중대한 이슈priority:high- 높은 우선순위로 다음 스프린트에서 처리해야 하는 이슈priority:medium- 중간 우선순위로 향후 스프린트에서 처리할 이슈priority:low- 낮은 우선순위로 여유가 있을 때 처리할 이슈
상태 라벨
status:backlog- 아직 스프린트에 할당되지 않은 이슈status:ready- 개발 준비가 완료된 이슈status:in-progress- 현재 개발 중인 이슈status:review- 코드 리뷰 중인 이슈status:blocked- 다른 이슈나 외부 요인으로 인해 진행이 막힌 이슈
유형 라벨
type:feature- 새로운 기능type:bug- 버그 수정type:enhancement- 기능 개선type:documentation- 문서화 작업type:refactor- 코드 리팩토링type:test- 테스트 관련 작업
컴포넌트 라벨
component:ui- UI 관련 이슈component:api- API 관련 이슈component:database- 데이터베이스 관련 이슈component:auth- 인증 관련 이슈component:editor- 카드 에디터 관련 이슈component:sharing- 공유 기능 관련 이슈component:storage- 저장 및 동기화 관련 이슈
기타 라벨
good-first-issue- 신규 기여자에게 적합한 이슈help-wanted- 외부 도움이 필요한 이슈discussion- 추가 논의가 필요한 이슈wontfix- 해결하지 않기로 결정된 이슈duplicate- 중복된 이슈
이슈 템플릿
기능 요청 템플릿
## 기능 설명
[기능에 대한 간결한 설명]
## 사용자 스토리
[사용자 관점에서의 기능 설명, "사용자로서, ~할 수 있기를 원합니다. 그래서 ~할 수 있습니다." 형식]
## 상세 요구사항
- [요구사항 1]
- [요구사항 2]
- [요구사항 3]
## 수용 기준
- [ ] [기준 1]
- [ ] [기준 2]
- [ ] [기준 3]
## 디자인 참조
[관련 디자인 문서, 와이어프레임, 목업 등의 링크]
## 추가 컨텍스트
[기능 구현에 도움이 될 추가 정보]
버그 리포트 템플릿
## 버그 설명
[버그에 대한 간결한 설명]
## 재현 단계
1. [단계 1]
2. [단계 2]
3. [단계 3]
## 예상 동작
[정상적으로 작동했을 때 예상되는 동작]
## 실제 동작
[실제로 발생한 동작]
## 스크린샷
[가능한 경우 스크린샷 첨부]
## 환경 정보
- 기기: [예: iPhone 13 Pro]
- OS: [예: iOS 16.2]
- 앱 버전: [예: 1.2.0]
- 기타 관련 정보
## 가능한 해결 방법
[알고 있는 경우, 가능한 해결 방법 제안]
## 추가 컨텍스트
[문제 해결에 도움이 될 추가 정보]
이슈 생성 가이드라인
이슈 제목 작성법
- 명확하고 간결하게 작성
- 행동 지향적인 동사로 시작 (예: "구현", "수정", "개선")
- 이슈의 핵심을 포함 (예: "카드 에디터에 텍스트 크기 조절 기능 구현")
이슈 설명 작성법
- 관련 템플릿 사용
- 충분한 컨텍스트 제공
- 명확한 요구사항 또는 문제점 설명
- 가능한 경우 시각적 자료 첨부 (스크린샷, 다이어그램 등)
- 관련 문서나 이슈 링크 제공
이슈 할당 및 마일스톤 설정
- 담당자가 명확한 경우 이슈 생성 시 할당
- 적절한 마일스톤에 이슈 연결 (스프린트 또는 릴리스 버전)
- 예상 완료 일자 설정 (가능한 경우)
이슈 관리 워크플로우
1. 이슈 생성
- 적절한 템플릿을 사용하여 이슈 생성
- 관련 라벨 적용
- 필요한 경우 담당자 할당
2. 이슈 트라이아지 (분류)
- 주간 트라이아지 미팅에서 새 이슈 검토
- 우선순위 및 마일스톤 설정
- 필요한 추가 정보 요청
3. 이슈 처리
- 담당자는 이슈를
status:in-progress로 변경 - 관련 브랜치 생성 (명명 규칙:
issue/[이슈번호]-[간략한-설명]) - 작업 진행 및 커밋
4. 코드 리뷰
- 작업 완료 후 Pull Request 생성
- 이슈 상태를
status:review로 변경 - 코드 리뷰 진행 및 피드백 반영
5. 이슈 종료
- Pull Request가 승인되고 병합되면 이슈 종료
- 이슈에 해결 방법 간략히 기록
- 관련 문서 업데이트 필요 시 언급
GitHub 프로젝트 보드 구성
ZELLYY 프로젝트는 GitHub 프로젝트 보드를 사용하여 이슈와 작업을 시각적으로 관리합니다.
보드 컬럼
- Backlog: 아직 스프린트에 할당되지 않은 이슈
- To Do: 현재 스프린트에 할당되었지만 아직 시작되지 않은 이슈
- In Progress: 현재 작업 중인 이슈
- Review: 코드 리뷰 중인 이슈
- Done: 완료된 이슈
자동화 규칙
- 새 이슈는 자동으로 Backlog에 추가
status:in-progress라벨이 적용된 이슈는 In Progress로 이동status:review라벨이 적용된 이슈는 Review로 이동- 이슈가 종료되면 자동으로 Done으로 이동
브랜치 및 커밋 전략
브랜치 명명 규칙
- 기능 개발:
feature/[이슈번호]-[간략한-설명] - 버그 수정:
bugfix/[이슈번호]-[간략한-설명] - 문서 작업:
docs/[이슈번호]-[간략한-설명] - 리팩토링:
refactor/[이슈번호]-[간략한-설명]
커밋 메시지 형식
[이슈번호] 유형: 간결한 설명
상세 설명 (필요한 경우)
예시:
[#42] feat: 카드 에디터에 텍스트 크기 조절 기능 추가
- 슬라이더를 사용하여 텍스트 크기 조절 가능
- 8pt에서 72pt까지 조절 가능
- 기본값은 16pt로 설정
커밋 유형
feat: 새로운 기능 추가fix: 버그 수정docs: 문서 변경style: 코드 포맷팅, 세미콜론 누락 등 (코드 변경 없음)refactor: 코드 리팩토링test: 테스트 코드 추가 또는 수정chore: 빌드 프로세스, 도구 변경 등
Pull Request 프로세스
PR 템플릿
## 관련 이슈
[관련 이슈 번호 및 링크]
## 변경 사항
[변경 사항에 대한 간결한 설명]
## 변경 유형
- [ ] 새로운 기능
- [ ] 버그 수정
- [ ] 성능 개선
- [ ] 코드 리팩토링
- [ ] 스타일 변경 (코드 기능에 영향 없음)
- [ ] 문서 업데이트
- [ ] 기타 (설명: )
## 테스트 방법
[변경 사항을 테스트하는 방법 설명]
## 스크린샷 (UI 변경의 경우)
[변경 전/후 스크린샷]
## 체크리스트
- [ ] 코드가 스타일 가이드를 준수합니다
- [ ] 자체 코드 리뷰를 수행했습니다
- [ ] 관련 문서를 업데이트했습니다
- [ ] 테스트를 추가/수정했습니다
- [ ] 모든 테스트가 통과합니다
PR 리뷰 가이드라인
- 최소 1명의 승인이 필요
- 코드 품질, 테스트 커버리지, 문서화 확인
- 건설적인 피드백 제공
- 24시간 이내에 리뷰 완료 (가능한 경우)
병합 전략
- Squash and merge 사용 (여러 커밋을 하나로 압축)
- 병합 전 CI 파이프라인 통과 확인
- 병합 후 관련 이슈 자동 종료 (키워드 사용: "Closes #이슈번호")
릴리스 프로세스
버전 관리
ZELLYY는 Semantic Versioning 체계를 따릅니다:
- Major 버전 (X.0.0): 이전 버전과 호환되지 않는 API 변경
- Minor 버전 (0.X.0): 이전 버전과 호환되는 새로운 기능 추가
- Patch 버전 (0.0.X): 버그 수정 및 작은 개선
릴리스 브랜치
- 릴리스 준비:
release/vX.Y.Z브랜치 생성 - 릴리스 후보 테스트 및 버그 수정
- 최종 릴리스: 메인 브랜치에 병합 및 태그 생성
릴리스 노트
- GitHub Releases 기능 활용
- 주요 기능, 개선 사항, 버그 수정 등 카테고리별 정리
- 사용자 관점에서 이해하기 쉬운 설명 제공
- 스크린샷 또는 GIF 포함 (UI 변경의 경우)
결론
이 Git 이슈 트래킹 시스템은 ZELLYY 프로젝트의 효율적인 개발 관리를 위한 가이드라인입니다. 모든 팀원은 이 가이드라인을 따라 일관된 방식으로 이슈를 생성하고 관리함으로써, 프로젝트의 투명성과 협업 효율성을 높일 수 있습니다.
이 문서는 프로젝트의 진행 상황과 팀의 필요에 따라 지속적으로 업데이트될 예정입니다.