Files
Obsidian/ZELLYY/zellyy note/04_참고자료/Git_이슈_트래킹_시스템.md
2025-03-26 18:16:46 +09:00

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 프로젝트 보드를 사용하여 이슈와 작업을 시각적으로 관리합니다.

보드 컬럼

  1. Backlog: 아직 스프린트에 할당되지 않은 이슈
  2. To Do: 현재 스프린트에 할당되었지만 아직 시작되지 않은 이슈
  3. In Progress: 현재 작업 중인 이슈
  4. Review: 코드 리뷰 중인 이슈
  5. 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 프로젝트의 효율적인 개발 관리를 위한 가이드라인입니다. 모든 팀원은 이 가이드라인을 따라 일관된 방식으로 이슈를 생성하고 관리함으로써, 프로젝트의 투명성과 협업 효율성을 높일 수 있습니다.

이 문서는 프로젝트의 진행 상황과 팀의 필요에 따라 지속적으로 업데이트될 예정입니다.