본문 바로가기
카테고리 없음

[Github]혼자서 코딩 공부 후 실무를 위해 협업을 준비하기 전 모르면 안되는 Github 사용 절차와 방법론

by sighan 2023. 12. 6.
반응형

협업을 위한 Github 사용 절차

GitHub를 사용하는 몇 가지 기본적인 원칙과 절차가 있습니다:

  1. 저장소 생성 및 복제 (Repository Creation and Cloning):
    • 프로젝트를 위한 새로운 저장소를 생성합니다.
    • 필요한 경우, 기존 저장소를 복제(clone)하여 로컬 작업을 시작합니다.
  2. 브랜치 생성 및 관리 (Branch Creation and Management):
    • 새로운 기능이나 수정 사항을 개발할 때는 별도의 브랜치를 생성합니다.
    • 작업 완료 후, 브랜치를 메인 브랜치(예: master 또는 main)에 병합합니다.
  3. 커밋 (Commit):
    • 로컬에서 변경 사항을 작성한 후, 이를 커밋(commit)하여 기록합니다.
    • 커밋 메시지는 변경 내용을 명확하게 설명해야 합니다.
  4. 풀 요청 (Pull Request):
    • 작업한 브랜치를 원격 저장소에 푸시(push)한 후, 풀 요청(pull request)을 생성하여 코드 리뷰를 요청합니다.
    • 다른 팀원의 리뷰와 승인을 받은 후, 메인 브랜치에 병합(merge)합니다.
  5. 이슈 관리 (Issue Management):
    • 버그, 개선 사항, 새로운 기능 등은 이슈(issue)로 등록하여 관리합니다.
    • 이슈에 대한 논의, 진행 상태 업데이트, 해결책 제시 등을 통해 프로젝트 관리를 강화합니다.
  6. 문서화 (Documentation):
    • README 파일, 위키 페이지 등을 통해 프로젝트 문서화를 진행합니다.
    • 사용자나 개발자가 프로젝트를 이해하고 사용하는 데 도움이 되는 정보를 제공합니다.
  7. 버전 관리 및 릴리스 (Version Control and Releases):
    • 프로젝트의 중요한 단계에서는 버전 번호를 할당하여 릴리스(release)를 관리합니다.
    • 변경 사항, 업데이트 내용 등을 명확히 기록합니다.

GitHub를 효과적으로 사용하려면 이러한 기본 원칙들을 숙지하고 일관성 있게 적용하는 것이 중요합니다.

 

 

 

GitHub 사용 방법론

GitHub를 사용하는 다양한 방법론들 중 몇 가지 주요한 것들은 다음과 같습니다:

  1. Git Flow: 기능 개발, 릴리스 준비, 유지 보수를 위한 별도의 브랜치를 사용하는 방법론입니다. 이는 feature, develop, release, hotfix, master 브랜치를 포함합니다.
  2. GitHub Flow: 간단하고 직관적인 워크플로우를 제공하는 방법론입니다. master 브랜치가 항상 배포 가능한 최신 상태를 유지하도록 합니다. 새로운 기능 개발이나 버그 수정을 위해, 개발자는 master 브랜치에서 새로운 브랜치를 만듭니다. 
  3. Trunk Based Development: 모든 개발자가 단일 trunk 또는 master 브랜치에 직접적으로 작업을 커밋하는 방법론입니다. 짧은 주기로 브랜치에 커밋하여 빠른 통합을 추구합니다.
  4. Feature Branch Workflow: 각 기능 개발에 대해 별도의 브랜치를 생성하는 방식입니다. 이는 병합 전 코드 리뷰를 용이하게 하여 품질 관리에 도움을 줍니다.

이러한 방법론들은 각각 특정한 상황과 팀의 작업 스타일에 적합하게 설계되어 있으며, 프로젝트의 요구사항과 팀의 선호에 따라 적절한 방법론을 선택할 수 있습니다.

 

 

각 방법론의 단계

  1. Git Flow:
    • 단계: master에서 develop 분기 → develop에서 feature 분기 개발 → 개발 완료 후 featuredevelop에 병합 → develop에서 release 분기 및 최종 테스트 → releasemaster에 병합 및 배포 태그 → 필요 시 master에서 hotfix 분기 및 수정 후 masterdevelop에 병합
    • 특징: 더 많은 브랜치와 엄격한 워크플로우.
    • CI/CD 적용: 복잡한 프로젝트의 단계별 통합과 배포에 적합합니다.
  2. GitHub Flow:
    • 단계: master에서 브랜치 생성 → 개발 → Pull Request → 코드 리뷰 → master에 병합 → 배포.
    • 특징: 단순하고 직관적, 빠른 배포 중심.
    • CI/CD 적용: 모든 코드 변경 사항이 master 브랜치에 병합되고 바로 배포됩니다.
  3. Trunk Based Development:
    • 단계: 중앙 브랜치(master/trunk)에 직접 커밋 → 지속적 통합.
    • 특징: 짧은 브랜치 생명주기, 지속적인 통합과 빠른 배포 중심.
    • CI/CD 적용: 중앙 브랜치에서의 지속적인 커밋과 통합을 통해 빠른 배포가 이루어집니다.
  4. Feature Branch Workflow:
    • 단계: master 또는 develop에서 기능(feature)별 브랜치 생성 → 개발 → Pull Request → 코드 리뷰 → master/develop에 병합.
    • 특징: 각 기능별로 분리된 브랜치, 코드 품질 관리 중심.
    • CI/CD 적용: 병합 전 리뷰와 테스트를 통해 안정적인 코드를 master에 통합합니다.

 

이 네 가지 방법론은 모두 CI/CD 프로세스와 결합될 수 있으며, 각각의 프로젝트 특성과 팀의 필요에 따라 선택됩니다. GitHub Flow와 Trunk Based Development는 빠른 개발 사이클과 지속적인 배포에 적합하며, Git Flow와 Feature Branch Workflow는 보다 엄격하고 체계적인 프로젝트 관리에 유리합니다.

반응형