브랜칭 전략이란 효율적인 코드 관리를 위해 브랜치의 종류와 역할을 구분해 사용하는 방법을 말합니다.
Git이 널리 쓰이면서 여러 가지 전략이 등장했는데, 그중 가장 유명한 것이 바로 Git Flow인데, Git Flow는 대규모 개발 프로젝트에서 소프트웨어의 릴리즈 버전을 명확하게 구분하고, 동시에 여러 버전을 배포해야 하는 환경에 적합합니다.
개발에 초점을 둔 초기 프로젝트로 배포 주기가 잦지 않은 상황을 고려했습니다. 규모에 비해 브랜치가 많아 관리 부담은 있지만, 시행착오를 통해 우리 팀에 맞는 전략으로 발전시킬 수 있으며, 잦은 Pull Request와 Merge 충돌 경험을 통해 Git 스킬을 향상시킬 수 있기 때문에 Git Flow 전략을 채택했습니다.
feature 브랜치를 생성합니다develop 브랜치에 merge를 진행합니다release 브랜치를 생성합니다main 브랜치로 merge하며, 만일 release 브랜치 내부에서 오류 수정이 진행되었을 경우 동기화를 위해 develop 브랜치에도 merge를 진행합니다hotfix 브랜치를 생성하여 버그 픽스를 진행합니다| 이름 | 설명 | 예시 |
|---|---|---|
| main | 사용자에게 언제든 배포할 수 있는 브랜치 | main |
| develop | 다음 버전 배포를 위한 개발 중인 브랜치로 통합 브랜치의 역할을 합니다 | develop |
| feature | 기능 개발, 리팩토링, 문서 작업, 단순 오류 수정 등 다양한 작업을 기록하기 위한 브랜치 | feature/member_join |
| release | 다음 버전 출시를 준비하는 브랜치로 develop 브랜치를 release 브랜치로 옮긴 후 QA, 테스트를 진행하고 main 브랜치로 합칩니다 | release/1.2 |
| hotfix | 배포 후 발생한 버그를 긴급하게 수정할 필요가 있을 때 main 브랜치에서 분리하는 브랜치 | hotfix/comment_error |
브랜치명은 반드시 소문자 + 언더바(_) 로만 작성합니다.
⚠️ 대문자, 한글, 띄어쓰기, 특수문자 사용 금지 (운영체제별 충돌 방지)
예시
feature/user_loginFeature/UserLogin, feature/유저가입한 브랜치에는 하나의 명확한 기능이나 이슈만 포함시킵니다. 여러 기능을 동시에 구현하지 않습니다.
예시
feature/user_loginfeature/user_login_and_profile_edit| 작업 내용 | 브랜치명 |
|---|---|
| 자격증 리스트 페이지 개발 | feature/certification_list_page |
| 일정 불러오기 API 버그 수정 | fix/schedule_api_nullpointer |
| JSP 템플릿 리팩터링 | refactor/jsp_layout |
| README 업데이트 | docs/readme_update |
| 1차 배포 버전 | release/v1_0_0 |