IT/개발자 면접

Git Flow 와 GitHub Flow , Branch 전략

Collin 2023. 12. 13. 08:55
반응형

 

 

Git Flow와 GitHub Flow는 소프트웨어 개발에서 사용되는 브랜칭 전략 중 두 가지 주요한 방식입니다.

Git Flow:

  1. Master Branch:
    • master 브랜치는 항상 배포 가능한 상태의 코드를 유지합니다.
    • 실제로 배포되는 코드가 저장되는 곳입니다.
  2. Develop Branch:
    • develop 브랜치는 다음 버전을 위한 개발이 이루어지는 곳입니다.
    • 새로운 기능 개발이나 버그 수정 등이 이루어집니다.
  3. Feature Branches:
    • 새로운 기능을 개발할 때마다 새로운 브랜치를 생성합니다.
    • 각 기능 브랜치는 develop 브랜치에서 분기됩니다.
  4. Release Branches:
    • 배포를 위한 버전을 준비할 때 생성하는 브랜치입니다.
    • QA 및 마무리 작업을 수행하고 최종적으로 master와 develop 브랜치에 병합합니다.
  5. Hotfix Branches:
    • 프로덕션에서 발생한 심각한 버그를 긴급하게 수정하기 위한 브랜치입니다.
    • master 브랜치에서 분기되어 수정 후 master와 develop 브랜치에 병합합니다.

GitHub Flow:

  1. Main Branch:
    • main (또는 master) 브랜치는 항상 배포 가능한 상태의 코드를 유지합니다.
    • 배포는 main 브랜치에 직접 이루어집니다.
  2. Feature Branches:
    • 새로운 기능을 개발할 때마다 새로운 브랜치를 생성합니다.
    • 개발이 완료되면 main 브랜치에 병합합니다.
  3. Pull Requests:
    • 각 기능이나 수정이 완료되면 Pull Request를 생성합니다.
    • 코드 리뷰와 테스트를 거친 후 main 브랜치에 병합합니다.
  4. 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