[Git] Git Flow 브랜치 전략
2024. 1. 15. 00:25ㆍ개발/프론트엔드 개념
Git Flow란?
main 또는 master 브랜치와 development 브랜치를 유지하면서, 용도에 따라 임시적으로 feature, release, hotfix 브랜치를 생성해서 사용하는 방식의 전략이다. 브랜치 별로 약속된 역할에 맞게 생성해서 사용하는데 각 브랜치를 통해 규칙에 맞는 흐름 flow 대로 작업이 이루어지는 것을 지향한다.
기준이 되는 master, develop 브랜치를 먼저 설명하겠다.
- master: 정식 배포의 기준이 되는 브랜치로, 항상 안정적인 제품이 서비스 될 수 있는 소스코드로 언제나 배포 가능한 상태로 유지되어야 하는 브랜치이다.
- develop: 개발 중인 코드를 관리하는 브랜치이다. 새로운 기능 개발과 개발된 변화를 담은 버전 배포작업이 시작될 수 있는 브랜치이다.
develop에서 진행하던 작업을 새 버전 배포되는 시점에는 master 브랜치와 동일한 상태가 된다. 여기서 develop 브랜치에서 기능 개발과 릴리즈(배포)를 준비하는데 이런 경우 feature, release 브랜치를 develop 브랜치로부터 분기해서 작업을 한다.
- feature: 개발할 기능을 위한 브랜치로 기능 개발이 완료되면 그 변화가 develop 브랜치로 병합하고, feature 브랜치는 제거된다.
- release: 배포를 위한 브랜치로 배포 전 마무리 작업과 버그 수정이 이루어진다. 완료되면 master와 develop 브랜치로 병합된다. 릴리즈가 끝나면 제거된다.
추가적으로 master 브랜치에 긴급한 수정이 필요할 때는, hotfix 브랜치를 활용하여 빠르게 배포하기도 한다.
- hotfix: 긴급한 버그 수정을 위한 브랜치로 master 브랜치에서 발생한 버그를 고치고 master 브랜치와 develop 브랜치를 병합한다. master 브랜치를 기준으로 생성하기 때문에 빠르게 master에 병합해서 버그에 대응할 수 있다.
Git Flow는 안정적인 코드 배포를 위한 강력한 전략이지만, 프로젝트가 작을 때는 비효율적일 수 있다. 배포 주기가 긴 대형 서비스이면서, 서비스의 안정성이 강조되는 경우에 사용하면 유용하다.
장점
- 안정적인 배포를 위한 구조가 갖춰져 있다.
- 긴 개발 주기에 적합하며, 복잡한 기능 개발과 버그 수정에 유용하다.
- 배포 전 마무리 작업과 테스트를 위한 release 브랜치를 사용할 수 있다.
단점
- 브랜치가 많아지고 관리해야 할 작업이 증가할 수 있다.
- 작은 규모의 프로젝트에서는 비효율적일 수 있다.
'개발 > 프론트엔드 개념' 카테고리의 다른 글
[JS] HTTP 메소드 (GET, POST, PUT, DELETE, PATCH) (0) | 2024.01.28 |
---|---|
[JS] 이벤트 버블링, 캡쳐링, 위임 (0) | 2024.01.28 |
[Git] branch merge 하는 방법 (0) | 2024.01.14 |
[CSS] position의 속성과 특징(static, relative, absolute, fixed, sticky) (1) | 2024.01.07 |
[HTML] 시맨틱 태그를 사용하면 좋은 점 (1) | 2024.01.07 |