프로젝트에 앞서 초기 환경 세팅부터 제대로 진행해보고자 한다!
Issue template과 Pr template를 만들어보자. 그렇다면 왜 템플릿을 만들어서 진행해야 할까?
Issue와 PR(풀 리퀘스트)은 프로젝트 과정에서 여러 팀원들이 매우 빈번하게 작성하는 문서이니 만큼,
공통된 양식이 있다면 같은 양식을 일일이 작성할 필요가 없어 편리하고 커뮤니케이션이 용이해진다.
Issue와 PR은 프로젝트에서 정말 자주 쓰는 문서이니만큼 Template을 사용하는 다음과 같다.
- 시간 절약: 공통된 양식에 내용만 채우기만 하면 된다.
- 실수 방지: 중요한 내용 빼먹을 일이 없어진다.
- 소통 개선: 팀원들이랑 소통할 때 훨씬 편해진다.
즉, 공통 양식의 문서관리를 통해 팀 내 의사소통을 명확히 하고, 일관된 문서 관리로 프로젝트의 효율성과 품질을 높이는 데 기여한다.
Issue Template
⚡️ 작성 전 고려사항
- 이슈의 명확한 목적 정의
- 명확한 상황 제시
- 예상 결과와 실제 결과 명시
- 필수 정보와 선택적 정보 구분
- 지속적인 업데이트
이전에는 GitHub에서 Issue Template을 Repository 레벨에서 직접 관리했다.
- Repository의 [Setting] 탭으로 이동
- Features 항목의 Issues 섹션에서 'Set up templates' 버튼 클릭
- 밑사진과 같은 화면에서 버그와 기능 이슈에 대한 템플릿 작성
하지만 이번 프로젝트에서는 실수 방지를 위해 Organization 및 Repository 레벨의 Setting 접근을 제한했다.
따라서 다음과 같은 새로운 방식으로 진행하고자 한다.
- 새로운 브랜치 생성 (feature/add-issue-pr-templates)
- Issue 및 PR Template 마크다운 파일을 직접 생성
- 생성한 파일을 PR을 통해 dev 브랜치에 병합

우선 우리의 convention에 따라서 feature/add-issue-pr-templates 브랜치를 새로 생성하여
다음과 같은 파일구조를 setting 하였다.
⚡️ 주의해야 할 점
- Issue 템플릿 파일들은 반드시 .github/ISSUE_TEMPLATE/ 디렉토리 안에 있어야 한다.
-'ISSUE_TEMPLATE'은 반드시 대문자여야 합니다. - Pull Request 템플릿 파일은 .github/ 디렉토리 바로 아래에 위치해야 한다.
- Bug Report(버그 리포트)
먼저 bug_report.md 즉, 말 그대로 버그에 관한 이슈를 다루는 버그 리포트 양식을 작성해 보자. (참고 블로그)
---
name: 버그 리포트
about: 버그 발생 시 이 템플릿을 사용해 주세요
title: "[BUG] "
labels: bug
---
## #️⃣ 어떤 버그인가요?
> #어떤 버그인지 간결하게 설명해주세요.
## #️⃣ 어떤 상황에서 발생한 버그인가요?
> (가능하면) Given-When-Then 형식으로 서술해주세요.
## #️⃣ 예상 결과
> 예상했던 정상적인 결과가 어떤 것이었는지 설명해주세요.
## #️⃣ 실제 결과
> 실제로 어떤 결과가 발생했는지 설명해주세요.
## 📎 참고할만한 자료(선택)
> 관련 문서, 스크린샷, 또는 예시 등이 있다면 여기에 첨부해주세요
- name: 이슈 템플릿의 이름
- about: 이 템플릿의 용도에 대한 간단한 설명.
- title: 이슈 생성 시 자동으로 설정되는 제목의 접두사.
- labels: 이슈에 자동으로 적용될 레이블
🚦잠깐 여기서 Given-When-Then 형식에 대해 간단히 Araboza!
Given (전제 조건): 로그인한 사용자로, 장바구니에 상품을 담은 상태
When (행동): '결제하기' 버튼을 클릭했을 때,
Then (결과): 결제 페이지로 이동해야 하는데, 흰 화면만 나타남
- Feature Request(기능 요청)
다음으로 feature_request.md 즉, 기능 추가 및 기능 개선을 다루는 기능 요청 이슈를 작성해 보자.
---
name: 기능 요청
about: 새로운 기능을 추가하거나 기존 기능(성능 포함)을 개선할 때 사용해주세요.
title: "[FEATURE] "
labels: feat
---
## #️⃣ 요청 유형
> 해당되는 항목을 선택해주세요.
- [ ] 새로운 기능 추가
- [ ] 기존 기능 개선
- [ ] 성능 개선
## #️⃣ 어떤 기능인가요?
> 추가하려는 기능 또는 개선하려는 부분에 대해 간결하게 설명해주세요.
## #️⃣ 이 기능이 필요한 이유는 무엇인가요?
> 이 기능이 왜 필요한지, 또는 개선/성능 향상이 필요한 이유에 대해 설명해주세요.
## 구현 방안 (선택)
> 이 기능을 어떻게 구현할 수 있을지에 대한 아이디어를 간단히 설명해주세요.
## #️⃣ 작업 상세 내용
- [ ] TODO
- [ ] TODO
- [ ] TODO
## 📎 참고할만한 자료 (선택)
> 관련 문서, 스크린샷, 또는 예시 등이 있다면 여기에 첨부해주세요.
- Maintenance Issue(유지 보수)
다음은 자체적으로 maintenance_issue.md 즉, 유지 보수를 다루는 유지 보수 이슈 양식을 작성해 보자.
---
name: 유지 보수 이슈
about: 코드 리팩토링, 스타일 수정, 문서 작업 등 기능/성능 개선을 목적으로 하지 않는 유지 보수 작업에 사용해주세요.
title: "[MAINTENANCE] "
---
## #️⃣ 작업 내용
> 수행해야 할 작업 내용을 간략하게 설명해주세요.
## #️⃣ 작업이 필요한 이유
> 왜 이 작업이 필요한지 설명해주세요. 유지 보수 작업의 목적과 기대 효과를 기술해주세요.
## #️⃣ 작업 상세 내용
- [ ] TODO
- [ ] TODO
- [ ] TODO
## 📎 참고 자료 (선택)
> 관련 문서, 스크린샷, 또는 예시 등이 있다면 여기에 첨부해주세요
👍 Issue template 설정 완료
커밋, 푸시 이후 dev브랜치에 병합한 이후, Issues - New Issue 탭을 누르면 잘 적용된 것을 확인할 수 있다.
이렇게 issue 템플릿을 작성해 보았다. 다음은 Pr template으로 넘어가 보자
Pr Template
⚡️ 작성 전 고려사항
- 체크리스트의 실용성 확인
- 리뷰어를 향한 요구사항 제시
- 필수 정보와 선택적 정보를 구분하기
- 지속적인 업데이트
---
name: PR 템플릿
about: PR 생성 시 이 템플릿을 사용해 주세요.
title: "[PR] "
---
## #️⃣ 연관된 이슈
> 관련된 이슈 번호를 적어주세요. 예: #이슈번호
## #️⃣ 작업 내용
> 이번 PR에서 작업한 내용을 간략히 설명해주세요. (이미지 첨부 가능)
## #️⃣ 테스트 결과
> 코드 변경에 대해 테스트를 수행한 결과를 요약해주세요. 예: 모든 테스트 통과 여부, 새로 작성한 테스트 케이스 등
## #️⃣ 변경 사항 체크리스트
- [ ] 코드에 영향이 있는 모든 부분에 대한 테스트를 작성하고 실행했나요?
- [ ] 문서를 작성하거나 수정했나요? (필요한 경우)
- [ ] 코드 컨벤션에 따라 코드를 작성했나요?
- [ ] 본 PR에서 발생할 수 있는 모든 의존성 문제가 해결되었나요?
## #️⃣ 스크린샷 (선택)
> 관련된 스크린샷이 있다면 여기에 첨부해주세요.
## #️⃣ 리뷰 요구사항 (선택)
> 리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요.
> 예시: 이 부분의 코드가 잘 작동하는지 테스트해 주실 수 있나요?
## 📎 참고 자료 (선택)
> 관련 문서, 스크린샷, 또는 예시 등이 있다면 여기에 첨부해주세요
👍 Pr template 설정 완료
Issue와 마찬가지로 커밋, 푸시 이후 dev브랜치에 병합한 이후 Pr 생성 시 자동으로 template이 적용되는 것을 확인할 수 있다.
🙇♂️ 결론
프로젝트 진행하면서 초기 환경 세팅을 하고 있는 중이다.
너무 재밌다!! 앞전 플젝과 달리 체계적으로 진행되는 느낌을 많이 받는다.
체계의 중요성에 대해 깨달으며, 기본기를 놓지 않는 개발자가 되야겠다
체게바라 명언
↳ 승리를 쟁취할 때까지 영원한 직진 🏃♂️➡️ ^^
'Git' 카테고리의 다른 글
Commit은 어느 시점, 어느 단위로 쪼개는 게 좋을까? (0) | 2025.03.31 |
---|---|
[GitHub] 브랜치 보호를 위한 Ruleset (0) | 2024.08.17 |
[GitHub] 협업 과정 워크 플로우 (0) | 2024.08.11 |