🤗 오늘의 위클리 페이퍼는
Git - Flow에 대한 토픽입니다.
git flow란?
👉 Git Flow는 Vincent Driessen이 제안한 Git을 위한 branch 전략으로, 다양한 종류의 branch를 통해 소프트웨어 개발 생명 주기를 관리합니다. 주요한 branch 유형으로는 master, develop, feature, release, hotfix가 있습니다.
✔ 먼저 2가지 기준이 되는 브랜치입니다.
- master 👉 정식 배포의 기준이 되는 브랜치로, 항상 안정적인 제품이 서비스될 수 있는 소스코드이며, 언제나 배포가능한상태로 유지되어야 하는 브랜치입니다.
- develop 👉 개발 중인 코드를 관리하는 브랜치입니다. 새로운 기능 개발과 개발된 변화를 담은 버전 배포작업이 시작될 수 있는 브랜치입니다.
이렇게 보면, develop은 master를 기준으로 변화가 일어나는 브랜치이고, 준비가 되면 쌓여온 변화들이 master에 병합시키기 위한 브랜치라는 것을 알 수 있죠. 새 버전이 배포되는 시점만큼은 master 브랜치와 동일한 상태일 것입니다.
앞서 본 것처럼, develop 브랜치에서 기능개발과 릴리즈를 준비합니다. 이런 경우 feature, release브랜치를 develop브랜치로부터 생성해서, 작업을 하게 됩니다.
- feature 👉 개발할 기능을 위한 브랜치입니다. 기능 개발이 완료되면 그 변화가 develop 브랜치로 병합하고, feature브랜치는 제거됩니다.
- release 👉 배포를 위한 브랜치입니다. 배포 전 마무리 작업과 버그 수정이 이루어집니다. 완료되면 master와 develop 브랜치로 병합됩니다. 역시 릴리즈가 끝나면 제거됩니다.
추가로, master 브랜치에 긴급한 수정이 필요할 때는, hotfix 브랜치를 활용해서 빠르게 배포하기도 합니다.
- hotfix 👉 긴급한 버그 수정을 위한 브랜치입니다. master 브랜치에서 발생한 버그를 고치고 master와 develop 브랜치로 병합합니다. master브랜치를 기준으로 생성하기 때문에, 빠르게 master에 병합해서 버그에 대응할 수 있습니다.
Git flow는 안정적인 코드 배포를 위한 강력한 전략이지만, 프로젝트가 작을 때는 비효율적일 수 있습니다. 배포주기가 긴 대형 서비스이면서, 서비스의 안정성이 강조되는 경우에 좋은 전략이 될 수 있습니다.
📗 장점
- 안정적인 배포를 위한 구조가 갖춰져 있습니다.
- 긴 개발 주기에 적합하며, 복잡한 기능 개발과 버그 수정에 유용합니다.
- 배포 전 마무리 작업과 테스트를 위한 release 브랜치를 사용할 수 있습니다.
📙 단점
- 브랜치가 많아지고 관리해야 할 작업이 증가할 수 있습니다. (이를 보완하기 위한 git flow 도구가 있습니다.)
- 작은 규모의 프로젝트에서는 비효율적일 수 있습니다
Git Flow는 개발 프로세스를 체계적으로 관리하고 협업을 원활하게 할 수 있는 효율적인 Git branch 전략입니다. 처음 Git을 배우는 사람들에게도 이해하기 쉽고 적용하기 편리한 방법 중 하나입니다.
'IT > [FE] 위클리 페이퍼' 카테고리의 다른 글
[FE] 📚 자바스크립트 얕은 복사(Shallow Copy) & 깊은 복사(Deep Copy) (0) | 2024.04.11 |
---|---|
[FE] 📚 자바스크립트 ==와 ===의 차이 (0) | 2024.04.11 |
[FE] 📚 Git -Branch merge (0) | 2024.04.11 |
[FE] 📚 CSS에서의 Position (0) | 2024.04.10 |
[FE] 📚 CSS에서의 Font-size (0) | 2024.04.10 |