이슈 규칙
이슈를 관리하는 규칙들을 정리하고 있어요.
이슈는 프로젝트의 작업을 추적하고 관리하는 핵심 도구이므로, 체계적으로 작성해야 해요.
이슈 제목
이슈 제목은 간결하고 명확하게 작성해야해요.
기본 형식
기본적인 이슈 제목의 형식은 다음과 같아요.
Terminal
$ <description>
이슈 제목을 작성할 때는 다음 규칙을 꼭 지켜야 해요.
- 한국어, 영어 모두 사용 가능해요.
- 명확하고 구체적으로 작성해주세요.
- 50자 이내로 간결하게 작성해요.
- 마침표는 사용하지 마세요.
- 라벨로 타입을 표시하더라도, 제목에 type(feature, refactor, hotfix)을 붙이세요.
이슈 본문
이슈 본문은 템플릿을 통해서 작성해주세요.
이슈 내용을 작성할 때는 다음 규칙을 꼭 지켜야 해요.
- ~합니다. 입니다 같은 ~니다 체를 사용해주세요.
- issue template 의 주석을 지우지 마세요.
- template에 작성을 요구하는 칸은 모두 다 채워주세요.
좋은 예시
이슈 작성의 좋은 예시는 다음과 같아요. (내용의 형식은 템플릿에 따라 바뀔 수 있어요)
markdown
제목: 웹뷰 브릿지 카메라 API 구현라벨: type: feature, priority: high, size: M## 작업 내용모바일 앱에서 웹뷰와 네이티브 카메라를 연동하는 브릿지 API를 구현합니다.## 작업 목적사용자가 웹뷰 내에서 카메라 기능을 사용할 수 있도록 합니다.## 체크리스트- [ ] 카메라 권한 요청 로직 구현- [ ] 브릿지 API 인터페이스 설계- [ ] 웹뷰-네이티브 통신 구현- [ ] 이미지 전송 로직 구현- [ ] 테스트 코드 작성## 참고 자료- [웹뷰 브릿지 가이드](링크)
나쁜 예시
이슈 작성의 나쁜 예시는 다음과 같아요.
markdown
제목: 기능 추가 → 너무 모호함, 라벨 미지정제목: 카메라 기능을 추가하고 싶어요. → 마침표 사용, 구어체제목: 웹뷰 브릿지 카메라 API를 구현하고 네이티브 통신을 추가하며... → 너무 김본문:카메라 추가해주세요 → 내용이 너무 부실함
라벨 활용
이슈 생성 시 반드시 적절한 라벨을 지정해야 해요.
이슈에 사용되는 라벨들은 다음과 같아요.
type 라벨
이슈의 유형을 나타내는 라벨이에요.
| 라벨 | 설명 | 예시 |
|---|---|---|
| type: feature | 새로운 기능 추가 요청이에요 | 웹뷰 브릿지 카메라 API 구현 |
| type: bug | 의도하지 않은 동작이나 오류예요 | 로그인 시 토큰 갱신 오류 수정 |
| type: refactor | 기능 변경 없이 코드 구조 개선이에요 | 알림 서비스 MSA로 분리 |
| type: docs | 문서 추가, 수정, 개선이에요 | API 명세서 업데이트 |
| type: chore | 빌드, 설정, 패키지 등 유지보수 작업이에요 | Docker 환경 설정 추가 |
| type: enhancement | 기존 기능의 개선 및 향상이에요 | 검색 속도 개선 |
| type: test | 테스트 코드 추가 또는 수정이에요 | E2E 테스트 추가 |
| type: hotfix | 프로덕션 환경의 긴급 버그 수정이에요 | 프로덕션 서버 다운 긴급 수정 |
priority 라벨
이슈의 우선순위를 나타내는 라벨이에요.
| 라벨 | 설명 |
|---|---|
| priority: critical | 긴급 - 서비스 중단 또는 심각한 버그로 즉시 처리가 필요해요 |
| priority: high | 높음 - 중요한 기능 또는 주요 버그로 우선 처리해요 |
| priority: medium | 보통 - 일반적인 작업으로 정상 일정으로 처리해요 |
| priority: low | 낮음 - 급하지 않은 작업으로 여유있을 때 처리해요 |
size 라벨
이슈의 작업량을 나타내는 라벨이에요.
| 라벨 | 설명 |
|---|---|
| size: XS | 매우 작음 - 4시간 이내로 간단한 수정이에요 |
| size: S | 작음 - 1-2일 정도로 작은 기능이나 버그 수정이에요 |
| size: M | 보통 - 3-5일 정도로 일반적인 기능 개발이에요 |
| size: L | 큼 - 1-2주 정도로 복잡한 기능이나 대규모 리팩토링이에요 |
| size: XL | 매우 큼 - 2주 이상으로 주요 기능이며 분할 검토가 필요해요 |
init 라벨
초기 설정 작업을 나타내는 라벨이에요.
| 라벨 | 설명 |
|---|---|
| init: project | 프로젝트 초기화 - 새로운 프로젝트나 모듈의 초기 설정이에요 |
| init: structure | 구조 초기화 - 폴더 구조, 아키텍처 설정이에요 |
| init: docs | 문서 초기화 - README, 기여 가이드 등 기본 문서 작성이에요 |
필수 라벨
위 3개의 라벨은 모든 이슈들이 필수적으로 가지고 있어야 해요.
- type 라벨: 이슈의 유형을 나타내는 라벨을 하나 선택해요.
- priority 라벨: 우선순위를 나타내는 라벨을 하나 선택해요.
- size 라벨: 작업량을 나타내는 라벨을 하나 선택해요.
이슈 할당
이슈를 생성할 때는 담당자(Assignee)를 지정해야 해요.
해당 담당자는 매주 트리아지 회의를 통해 배정해요.
금지사항
의미없는 제목은 금지됩니다. ex) 테스트, 버그 수정
본문 없이 제목만 작성하는것도 금지됩니다.
라벨을 지정하지 않는것도 금지됩니다.
하나의 이슈에 여러 관련없는 작업을 포함하는것도 금지됩니다.