반응형
Git Flow와 GitHub Flow는 소프트웨어 개발에서 사용되는 브랜칭 전략 중 두 가지 주요한 방식입니다.
Git Flow:
- Master Branch:
- master 브랜치는 항상 배포 가능한 상태의 코드를 유지합니다.
- 실제로 배포되는 코드가 저장되는 곳입니다.
- Develop Branch:
- develop 브랜치는 다음 버전을 위한 개발이 이루어지는 곳입니다.
- 새로운 기능 개발이나 버그 수정 등이 이루어집니다.
- Feature Branches:
- 새로운 기능을 개발할 때마다 새로운 브랜치를 생성합니다.
- 각 기능 브랜치는 develop 브랜치에서 분기됩니다.
- Release Branches:
- 배포를 위한 버전을 준비할 때 생성하는 브랜치입니다.
- QA 및 마무리 작업을 수행하고 최종적으로 master와 develop 브랜치에 병합합니다.
- Hotfix Branches:
- 프로덕션에서 발생한 심각한 버그를 긴급하게 수정하기 위한 브랜치입니다.
- master 브랜치에서 분기되어 수정 후 master와 develop 브랜치에 병합합니다.
GitHub Flow:
- Main Branch:
- main (또는 master) 브랜치는 항상 배포 가능한 상태의 코드를 유지합니다.
- 배포는 main 브랜치에 직접 이루어집니다.
- Feature Branches:
- 새로운 기능을 개발할 때마다 새로운 브랜치를 생성합니다.
- 개발이 완료되면 main 브랜치에 병합합니다.
- Pull Requests:
- 각 기능이나 수정이 완료되면 Pull Request를 생성합니다.
- 코드 리뷰와 테스트를 거친 후 main 브랜치에 병합합니다.
- Deployment:
- 배포는 main 브랜치에 직접 이루어집니다.
- 특정 환경에서 테스트 후 성공하면 프로덕션으로 배포합니다.
비교:
- Git Flow:
- 복잡한 작업 흐름으로 프로젝트의 복잡도가 높을 때 유용합니다.
- 배포 주기가 길어지고 여러 기능을 동시에 개발할 때 적합합니다.
- GitHub Flow:
- 단순하고 직관적인 흐름으로 빠른 배포를 지향합니다.
- 작은 기능 단위로 빈번한 배포가 필요한 프로젝트에 적합합니다.
Git Flow는 전략적이고 안정적인 프로세스를 지원하며,
GitHub Flow는 민첩하고 빠른 개발 및 배포에 중점을 둡니다.
반응형
'IT > 개발자 면접' 카테고리의 다른 글
Redis 란? (0) | 2023.12.15 |
---|---|
마이크로서비스(Microservices) (0) | 2023.12.14 |
Java Checked Exception과 Unchecked Exception (0) | 2023.12.12 |
서비스 개발 요청을 받았을 때 업무 진행 (0) | 2023.12.12 |
Spring Filter와 Interceptor (0) | 2023.12.11 |