코드 및 공부/기타

브랜치 전략(Git Flow)

ekrxjvpvj0110 2024. 9. 12. 20:18

들어가며


오늘은 브랜치 전략 중 하나인 Git Flow에 대하여 알아보겠습니다, Git Flow는 릴리즈 관리에 용이하고 규모가 크고 장기적인 프로젝트 관리에 적합합니다

 

 

 

 

 

GitFolw의 흐름도


Git Flow는 크게 main, develop, Supporting으로 구분됩니다, 이때 Supporting 브랜치는 reature, release, hotfix 브랜치로나누어 집니다, main 브랜치와 develop 브랜치는 항상 유지되는 브랜치입니다

 

 

1. main 브랜치는 프로젝트 시작과 동시에 생성되고 안정화된 버전을 반영하며, 배포 가능한 상태를 유지합니다

 

2. main 브랜치에 코드를 직접 푸시 하는 것은 위험하기 때문에 main의 복사본인 develop 브랜치를 생성합니다

 

3. 만약에 develop 브랜치에 신기능을 만들어 추가하고싶다면 feature 브랜치를 만들어서 작업합니다 

4. 기능 구현이완성되었다고 판단하면 develop 브랜치와 합쳐줍니다

5. develop 브랜치의 코드가 완성되어서 출시 하려고 한다면 main 브랜치가 아닌 임시 브랜치를 만들어 테스트, QA등을 진행합니다

6. 테스트가 완료되었다고 판단한다면 main에 합쳐줍니다

7. develop 브랜치에도 테스트과정에서 변경된 사항을 반영해줍니다

8. 만약 배포된 main 브랜치에서 버그가 생기거나 급하게 수정해야할 사항이 생긴 경우 hotfixes 브랜치를 만들어 수정합니다

9. 모든 변경사항을 수정했다면 main과 develop에도 반영해줍니다

GitFlow 전략의 장점과 단점


장점

1. 체계적인 브랜치 구조로 작업 흐름이 일관적이고 체계적임

2. 배포하기전 릴리즈 브랜치에서 버그 수정등 최종 점검을 꼼꼼하게 할수있어 제품 품질 향상에 큰 도움이 됨

3. hotfix 브랜치를 통해 긴급한 수정을 바로 처리하고 반영하여 빠르게 대응 가능

4. main 브랜치는 항상 배포 가능한 상태로 유지되기에 안정적인 상태의 코드를 보장 가능

 

단점

1. 복잡성으로인한 소규모 프로젝트에서의 생산성 저하

2. 관리해야할 브랜치가 많아질수록 브랜치간 충돌이나 병합 문제 발생 가능성 증대

3. 많은 브랜치와 병합과정으로 인한 자동화 도구 없이 수동 작업시 사람이 실수할 확률이 높아짐

 

결론

팀 프로젝트의 규모와 상황에 맞게 전략을 수립하는 것이 중요함, GitFlow는 주로 대규모 팀이나 장기적인 프로젝트에서 효율적인 브랜치 관리와 안정성을 제공해줌, 작은 프로젝트에서는 복잡성으로 인해 비효율적일수도 있다

 

 

 

마치며


오늘은 브랜치 전략중 GitFlow에 대하여 알아보았습니다

 

다음에는 커밋 컨벤션에 대하여 작성하도록 하겠습니다

 

틀린 내용이 있을시 댓글로 알려주시면 수정하겠습니다

'코드 및 공부 > 기타' 카테고리의 다른 글

속성(Attributes) (1)  (0) 2024.09.19
Git Commit Message Convention  (0) 2024.09.13
GitHub의 Branch protection rules  (0) 2024.09.11
협업으로서의 GitHub 사용법  (0) 2024.09.10
GitHub와 GitHub Desktop 설치 및 사용법  (1) 2024.09.09