< 목차 >
(1) 브랜치 종류
(2) Git Flow 사용한 개발 흐름
(3) Git Flow, 언제 사용하면 좋을까?
Git Flow 전략
Git Branch 전략은 여러 가지가 있지만, 대표적으로 여러 프로젝트에서 널리 사용되고 있는 대표 브랜치 전략 중 하나인 Git Flow에 대해서 알아보도록 하자. (위 출처의 내용 중 필요한 부분만을 뽑아서 요약했다는 것을 참고해주었으면 좋겠다.)
Git Flow는 가장 전통적으로 많이 사용되는 방식이다.
(1) 브랜치 종류
1. master: 제품 출시 버전을 관리하는 메인 브랜치
2. develop: 다음 출시 버전을 위해 개발하는 브랜치
3. feature: 새로운 기능을 개발하는 브랜치
4. release: 다음 출시 버전을 준비하는 브랜치
5. hotfix: 출시된 제품의 버그를 고치기 위한 브랜치
(2) Git Flow 사용한 개발 흐름
1. 신규 기능 개발을 위해 develop 브랜치를 기준으로 한 feature 브랜치를 따서 작업 진행
2. 작업이 완료된 feature 브랜치는 develop 브랜치로 merge 됨 (일반적으로 프로젝트 진행 시, PR 업로드 → 팀원에게 Review 받음 → 해당 PR을 merge 하는 방식으로 진행)
3. 다음 출시 버전을 위해 개발 중인 develop 브랜치에서 release 브랜치를 따서 배포를 위한 준비함 (이때 발견되는 버그들은 release 브랜치에서 바로 반영)
4. 충분한 테스트 후, 일정한 주기로 (일반적으로는 배포하고자 하는 버전 단위) master 브랜치로 merge 하여 제품 출시
5. 상용 배포 이후, release 브랜치에서 미처 발견되지 못한 새로운 버그들은 hotfix 브랜치에서 바로 반영
(3) Git Flow, 언제 사용하면 좋을까?
Git Flow는
(1) 다양한 종류의 브랜치를 사용하고,
(2) release 와 hotfix 브랜치를 통해 명확한 배포 절차를 갖추고 있고,
(3) 더 많은 제어와 복잡성을 가지고 있어 특정 기능이나 수정을 빠르게 배포해야 할 경우, 유연성이 다소 떨어지기 때문에
⇒ 복잡한 프로젝트나 대규모 팀에서 사용하기 좋다.
배포 안정성과 버전 관리 및 롤백 등 체계적인 운영이 가능하다.
이에 반해 GitHub Flow는
(1) 단순하며 지속적인 배포를 강조,
(2) master 브랜치에서 배포를 수행,
(3) 테스트와 검증 절차를 거치지 않고 바로 master 브랜치로 merge 되므로 위험성을 가지고 있지만,
(4) 그만큼 단순하고 빠르게 기능을 테스트하고 Agile 하게 배포할 수 있어
(5) 단순하며 빠른 개발 및 배포를 위해 사용하기 때문에
⇒ 작은 규모의 프로젝트나 개인 프로젝트에 적합한 전략이다.
'[Front-end] 개발자 공부' 카테고리의 다른 글
eslint-config-airbnb, eslint-plugin-simple-import-sort 사용 이유 (1) | 2024.12.28 |
---|---|
폰트, 자간/행간, 색상 글로벌로 설정하는 법 (with Tailwind CSS) (1) | 2024.12.27 |
[TypeScript] unknown, never, enum 타입의 개념 및 특징 (1) | 2024.12.27 |
[Next.js] App Router vs. Page Router (2) | 2024.12.07 |
[초기세팅] Next.js, TypeScript, ESLint(eslint-config-airbnb) etc (1) | 2024.12.06 |