6. develop branch → (Merge) → main branch - 최종적으로, develop 브랜치의 코드를 Main 브랜치로 병합하여 새로운 릴리즈를 생성합니다.
7. main branch - main 브랜치에 있는 코드는 안정적인 상태로 간주되어 프로덕션 환경에 배포됩니다.
8. main branch → horfix branch → main branch - 릴리즈 된 main 브랜치에서 긴급하고 중요한 버그 수정 또는 보안 문제를 해결하기 위해 사용됩니다. - main 브랜치에서 분기되어 개발 및 테스트 환경에서 수정 작업을 수행한 후 ‘main’ 브랜치에 안전하게 병합이 됩니다.
- 깃 플로우 방식은 중대형 프로젝트에 적합한 브랜치 전략입니다. 이에 대해 소규모 프로젝트에도 용이하게 사용이 가능하도록 변형한 방법에 대해 공유합니다. - 직접 개발에서 운영까지 직접 관리하고 운영을 하였을 때, 크지 않은 규모에 사용하기에 적합하기 이에 따라 확인해 봅니다.
1. 변형된 브랜치 구성
💡 변형된 브랜치 구성
- 이전 Gitflow 방식과 비교하였을 때, main 브랜치와 hotfix 브랜치는 병합하거나 생략을 하였습니다.
1. main 브랜치 - main 브랜치는 develop 브랜치로 대체하며 default 브랜치로 사용합니다. - 또한 develop 브랜치의 역할로 QA서버나 개발서버에 올리기 위한 목적으로 사용이 됩니다. 2. hotfix 브랜치 - 크지 않은 프로젝트 규모에서는 hotfix 브랜치를 관리하지 않고 즉각 처리할 수 있기에 해당 브랜치는 생략하였습니다.
브랜치 이름
설명
feature
- 새로운 기능을 개발할 때 사용하는 브랜치입니다. - develop 브랜치에서 분기되어 사용됩니다.
develop(=default)
- default branch이자 Feature Branch들이 병합되는 브랜치를 의미합니다. - 주된 역할은 QA서버나 개발 서버에 올리기 위해 한곳에 모이는 브랜치입니다. - 또한 해당 브랜치로 Pull Request가 수행되면 CI/CD로 QA서버나 개발서버에 배포되는 브랜치입니다.
release
- 제품 출시 버전을 관리하는 브랜치입니다.
hotfix
- 긴급한 버그 수정이 필요할 때 사용하는 브랜치입니다. master 브랜치에서 분기합니다.
main
- 제품 출시 버전을 관리하는 브랜치입니다.
2. 변형된 브랜치 흐름
💡 변형된 브랜치 흐름
1. develop branch - 브랜치의 시작은 develop 브랜치에서 시작합니다. - 해당 소스코드는 QA서버나 개발서버에 올라갈 소스코드를 관리하며, 가장 최신의 소스코드를 유지합니다.
2. develop branch → feature branch - 기능 개발을 위해 개발자마다 feature 브랜치를 생성합니다. - feature 브랜치는 develop 브랜치에서 분기되며 개별 기능 개발을 위한 작업을 진행하는 데 사용됩니다.
3. [CASE1] feature branch → (Merge) → develop branch - 기능 개발이 완료되면 feature 브랜치를 develop 브랜치로 병합합니다. - 이를 통해 새로운 기능이 develop 브랜치에 통합됩니다.
5. release branch - release branch에서는 운영 서버에 배포를 하는 소스코드를 관리합니다.
6. develop branch → (Merge) → release branch - QA서버나 개발서버에서 테스트가 완료된 브랜치를 release branch로 병합을 합니다. - 이전 QA서버나 개발 서버에서 CI/CD로 자동 배포 되었던 부분과 다르게 release branch는 직접 수동으로 소스코드를 내려서 배포를 수행합니다.
상세 처리과정 -1: Develop Branch
💡 Develop Branch - 브랜치의 시작은 develop 브랜치에서 시작합니다. - 해당 소스코드는 QA서버나 개발서버에 올라갈 소스코드를 관리하며, 가장 최신의 소스코드를 유지합니다.
💡 또한 default branch로 ‘develop branch’를 사용합니다.
상세 처리 과정-2: develop branch → feature branch
💡 Develop branch → Feature branch - 기능 개발을 위해 개발자마다 feature 브랜치를 생성합니다. - feature 브랜치는 develop 브랜치에서 분기되며, 개별 기능 개발을 위한 작업을 진행하는 데 사용됩니다.
💡 JIRA 이슈 기반 Feature Branch 생성
- JIRA 이슈를 기반으로 Feature Branch를 생성합니다. 하나의 이슈당 하나의 브랜치로 구성을 합니다. - Feature Branch의 경우 ‘Develop Branch에서 파생되어 생성됩니다. - 아래와 같이 JIRA의 이슈들이 존재하고 각각의 담당자들이 이슈별 기능을 담당하여 개발을 수행합니다.
💡 Github에서 사용예시
- 아래와 같이 MF-5, MF-6, MF-7의 JIRA 키 값을 기반으로 브랜치를 생성하고 ‘MF-5, MF-6, MF-7’ 형태로 커밋을 수행하였습니다.