산업의 급격한 변화와 새로운 기능에 대한 고객의 요구 증가로 인해 팀은 서로 단절되고 고립된 업무 환경에 처하게 될 수 있습니다. 애플리케이션 개발에는 반복되는 빠른 작업이 요구되며, 비즈니스에 가치를 제공하기 위해서는 유기적인 협업이 필요합니다. 팀은 버전 관리를 통해 효율적으로 협업하고 정보의 고립(silo)을 해소할 수 있습니다.
본 블로그에서는 개발팀이 Git을 사용하여 반복되는 새로운 기능 개발을 효율적으로 수행하고 비즈니스 가치 전달에 도움을 줄 수 있도록 협업 강화를 위한 5가지 모범 사례를 소개합니다.
1. 브랜치 전략 수립하기
다양한 전문분야와 지식을 가진 팀원들이 함께 일할 때 워크플로우에 대한 접근방식이 서로 상충될 수 있습니다. 이러한 혼란을 미연에 방지하기 위해 리더는 하나의 브랜치 전략을 세우고 이를 모두에게 전파해야 합니다.
브랜치 워크플로우의 결정은 팀 규모, 경험 수준, 확장에 대한 요구도 및 업무적인 제한 사항을 비롯한 여러 가지 요소에 따라 달라질 수 있습니다.
개발팀은 이미 정해진 워크플로우를 따라갈 수도 있지만, 팀에 필요한 요구사항에 맞춰 워크플로우를 만들 수도 있습니다. 어떤 전략을 선택하든 워크플로우를 팀에 전파하고, 필요한 경우 교육을 제공하는 것이 중요합니다.
일반적인 워크플로우는 다음을 포함합니다.
중앙 집중식 워크플로우
중앙 집중식 워크플로우에는 하나의 저장소와 하나의 마스터 브랜치가 있습니다. 팀은 개발 시 다른 브랜치를 사용하지 않음므로, 변경 사항을 덮어쓸 위험이 높습니다.
기능(Feature) 브랜치
기능 브랜치는 새로운 기능을 추가할 때마다 새로운 브랜치를 만드는 것입니다. 기능에 대해 작업자들은 모두 해당 feature
브랜치에 커밋합니다.
GitFlow
GitFlow는 기능 브랜치의 극단적인 형태입니다. GitFlow를 사용한 개발에는 마스터(master
)와 별도의 개발(develop
) 브랜치가 존재하며, 기능, 릴리즈(release
) 및 핫픽스(hotfix
) 브랜치가 지원됩니다. develop
브랜치에서 개발이 수행되고 release
브랜치로 이동 후 master
브랜치로 병합됩니다.