[GitHub] GitHub 플로우와 전략

조시현·2024년 4월 18일
0

github

목록 보기
3/4
post-thumbnail

GitHub 플로우

Git을 기반으로 하는 개발 작업 흐름 중 하나로, 효율적인 개발과 협업을 위한 전략을 제공합니다. GitHub 플로우는 주로 메인 브랜치와 피처 브랜치를 중심으로 작업을 진행합니다. 다음과 같은 카테고리로 GitHub 플로우와 관련 전략을 정리해 볼 수 있습니다.

전략

원칙

  • 작은 변경 사항: 한 번에 하나의 기능 또는 버그 수정만을 위한 작업을 수행합니다.
  • 자주 커밋: 작은 단위의 변경 사항을 자주 커밋하여 이력을 명확하게 관리합니다.
    -> 코드의 이력을 명확하게 관리하고, 문제가 생겼을 시 빠르게 수정이 가능하다.
  • 피드백 빠르게 반영: 커밋 후 바로 테스트를 통해 피드백을 받고, 필요한 경우 수정하여 다시 커밋합니다.

주요 브랜치

  • 메인 브랜치(main): 프로덕션에 배포될 수 있는 안정적인 코드만을 관리합니다.
    -> main 브랜치는 항상 프로덕션에 배포 가능한 상태를 유지합니다.
    -> develop 브랜치는 다음 배포를 위한 최신 개발 코드를 관리합니다.

  • 피처 브랜치(feature-branch): 개발 중인 기능이나 작업을 위한 브랜치입니다.
    -> 새로운 기능 개발을 위한 브랜치입니다.
    -> 각 피처는 별도의 브랜치를 가지며, 개발 완료 후 develop 브랜치로 병합합니다.

  • 배포 브랜치(release-branch):
    -> 다음 버전의 배포를 준비하는 브랜치입니다.
    -> develop 브랜치에서 필요한 기능이 모두 통합되면 release 브랜치를 생성합니다.

작업 흐름

  1. 피처 브랜치 생성: 새로운 기능이나 작업을 시작하기 전에 피처 브랜치를 생성합니다.
css

git checkout -b feature/new-feature main
  1. 코드 작업 및 커밋: 피처 브랜치에서 코드를 작성하고, 작은 단위로 자주 커밋합니다.
    - 커밋 메시지는 명확하고 이해하기 쉽게 작성합니다.
    - 커밋 메시지는 "제목 - 본문 - 꼬리말" 형식으로 작성하는 것이 좋습니다.
    ex)
sql
Copy code
Add new feature

- 상세 내용을 추가
- 관련 이슈 해결

Close #issue_number
sql

git add .
git commit -m "Add new feature"
  1. 코드 리뷰: 팀원들에게 코드 리뷰를 요청하여 피드백을 받습니다.
  • 코드 리뷰 프로세스:
    - 코드 리뷰는 모든 변경 사항에 대해 필수적으로 진행합니다.
    - 팀원들은 코드의 품질과 성능을 평가하며, 문제점이나 개선점을 피드백합니다.
  • 리뷰어 지정:
    - 피처 브랜치에서 개발한 코드는 다른 팀원에게 리뷰를 요청합니다.
    - 리뷰어는 해당 기능에 대한 전문성을 가진 팀원을 지정합니다.
  1. 피처 브랜치 병합: 리뷰를 마친 후 메인 브랜치로 피처 브랜치를 병합합니다.
css

git checkout main
git merge --no-ff feature/new-feature
git push origin main
  1. 배포: 메인 브랜치의 코드를 프로덕션 환경에 배포합니다.
  • CI/CD 도입: 지속적인 통합과 배포(CI/CD)를 도입하여 자동화된 테스트와 배포를 수행합니다.
  • GitHub Actions, Jenkins 등의 도구를 사용하여 자동화된 배포 파이프라인을 구축합니다.

문제 해결 전략

  • 버그 트래킹 시스템 도입:
    - GitHub Issues, Jira 등의 버그 트래킹 시스템을 도입하여 문제점을 체계적으로 관리합니다.
    - 발생한 문제는 즉시 트래킹 시스템에 등록하고, 해결 후 develop 브랜치에 반영합니다.
  • 문제 해결 프로세스:
    - 문제가 발생하면 즉시 수정하여 피처 브랜치에 반영합니다.
    수정 사항은 코드 리뷰를 거친 후 develop 브랜치에 병합합니다.

추가 전략

  • 코드 리뷰: 모든 변경 사항은 팀원들의 코드 리뷰를 거쳐야 합니다.
  • 지속적인 통합(CI): 자동화된 테스트와 빌드를 통해 코드의 품질을 유지합니다.
  • 문제 해결: 버그나 이슈가 발생하면 즉시 수정하여 메인 브랜치에 반영합니다.

GitHub 플로우는 단순하면서도 유연한 개발 작업 흐름을 제공하여 팀원 간의 협업을 효율적으로 도와줍니다. 이러한 원칙과 전략을 잘 따르면서 개발을 진행하면 더욱 안정적이고 효율적인 코드를 만들 수 있습니다.

이미지 출처

참고

ChatGPT

profile
노력하는 개발자

0개의 댓글