브랜치전략
git-flow

- 5가지 브랜치(마스터, 디벨롭 , 피처, 릴리스, 핫픽스)로 관리
- 메인 브랜치는
master
(실 배포용) 브랜치와develop
(개발용) 브랜치로 구성, 항시 유지됨
- 피처 브랜치는
develop
브랜치로부터 분기되며, 기능 단위로 관리. 해당 기능이 완성될 때까지 유지 → 완성 후 Merge 혹은 Drop → 해당 피처 삭제 - 일반적으로 피처 브랜치의 네이밍은 feature/기능요약 형식으로 작성됨
feature/login
- 이슈추적을 사용한다면, feature/{이슈넘버}-{기능요약} 형식으로 작성
feature/#13-login
- 릴리스 브랜치는
develop
브랜치에서 실 배포 이전 QA를 위한 브랜치 (최종 버그 수정 등). 이후maseter
브랜치로 Merge하고, 버그 수정 사항은develop
브랜치에도 적용해주어야 함
- 핫픽스 브랜치는 배포 버전에서 긴급한 수정이 필요할 때, master 브랜치에서 분기하여 작업하기 위한 브랜치
- 보조브랜치는 개발자 로컬 저장소에서 보통 관리되며, 원격 저장소에는 Push하지 않는다.
github-flow

- 하루에 변경사항을 작은 단위로 자주 병합/배포할 수 있는 구조로, CI/CD를 실천하기 위한 브랜치 전략
- git-flow보다 간소화되어 있고, 메인 이외의 브랜치를 구분하지 않음 → 개발하고자 하는 내용에 대한 명세를 브랜치명에 명확히 작성해주어야 함.
- 메인(
master
) 브랜치는 항상 최신 상태이며, 엄격한 Role과 함께 관리 - 모든 커밋은 언제 배포하든 문제가 없어야 하고, 언제든 새로운 브랜치를 만들어도 문제가 없어야 한다.
- 나머지 브랜치는 항상
master
브랜치로부터 분기되며, 체계적인 분류가 없기 때문에 브랜치명과 커밋 메시지를 명확하게 작성할 필요가 있음.
- 수시로 메인 브랜치에 Push하여야 함.
- 피드백이나 도움이 필요할 때, Merge 준비가 완료되었을 때 PR 생성, 리뷰와 논의 후
master
브랜치로 Merge → 즉시 배포***
- 소규모 팀이고, 단일 릴리즈 버전밖에 존재하지 않는 경우 사용하는 것을 권장
정리
- 메인(
master
)브랜치에 얼마나 수시로 Push / 배포하는지
- 브랜치의 구분이 얼마나 체계적인지 → 이슈, PR 등으로 보완
- 메인 뼈대만 채택하고 저희끼리 컨벤션을 커스텀해가는 것이 좋을 것 같습니다.
참고자료
팀 문화
- 적극적으로 의견을 제시했으면 합니다. 사소한 것이라도 좋습니다 👍
- 결국 제품이나 개발과정을 좋은 방향으로 발전시키기 위함이라는 같은 목적을 갖고 있기 때문에, 충분한 의견 교류로 합의점을 찾아나가면 좋을 것 같습니다.
- 궁금한 부분이나 막히는 부분이 있다면 즉시 공유했으면 합니다. 또한 본인이 설명할 수 있거나 도움을 줄 수 있다면 적극적으로 교류했으면 합니다.
- 디스코드 이모지를 통한 멘트 교통정리..
기타의견
- 개발서버 선택도 얘기해보면 좋을 듯 합니다! (CRA / Vite)
- 깃허브 이슈트래커 (마일스톤, 프로젝트 보드 활용)
- 너무 본격적으로 활용하지 않아도, 다들 기본적으로 Task를 Issues에서 관리하고 PR/Commit과 연동을 하고 있더라고요.
- 노션에서는 가볍게 링크만 걸어주는 식으로 관리해도 좋을 것 같습니다.
- 이전 기수들 노션 페이지와 깃헙 레포를 정리해놨는데, 본격적으로 시작하기 전에 읽어보면 도움이 될 것 같습니다.
- 프로젝트의 공통 목표 + 각자 생각하는 목표, 얻어갔으면 하는 것
실제로 본인의 개발 브랜치를 분기한 시점에서, 협업이 어떻게 이루어지는지 디테일한 사례를 여쭤봐도 좋을 것 같습니다.→ 커피챗 질문방에 작성함
- 내일 QR은 13시 입실 14시 퇴실이라고 합니다! 회의나 코어타임 시간 자유롭게 정하면 될 것 같습니다.