⚠️ 해당 게시글은 모던애자일 팀원이 준비한 테크톡 내용을 스크랩했습니다.

출처 : Modern-Agile 3term 이하람

 

삶이 온통 사람의 길이니

성장하는 즐거움을 알아가는 중입니다🌱

lami.tistory.com

Git을 알아야 하는 이유

  • git은 많은 회사에서 자격요건으로 있기 때문
    • git은 분산 버전 관리 시스템으로 협업을 하기 때문에 회사에서 무조건 사용
      • 원티드에서 가져온 일부 회사의 자격요건과 우대사항



Git?

  • 로컬에서 관리
  • 분산 버전 관리 시스템(Version Control System)
    • 분산 버전 관리 시스템이 없다면?
      • 위 사진처럼 모든 버전에 관한 파일을 저장해야 함.
      • 매우 불편하고 많은 용량을 차지함
  • 누가 무엇을 어떻게 변경했는지 기록하고 내용을 공유

Github?

  • 클라우드 서비스
  • git으로 관리하는 프로젝트를 올려둘 수 있는 git 호스팅 사이트

Git 구조

  1. 작업공간(working directory)에서 git add
  2. staging area에 있는 파일을 git commit
  3. 로컬 저장소에 git commit 됨
  4. git push 해서 원격저장소에 push

git commit을 한 후 git push를 하지 않는다면 카메라로 사진을 찍고 인스타그램에 올리지 않는 것과 같다.

Git Branch

  • git에서 branch는 독립적인 working directory를 의미
  • 현재의 버전으로 다른 버전을 만들어서 가지를 치는 것
  • 여러가지 버전의 branch를 만들어 보고, 이를 합치는 방식으로 작업

git branch를 이용해 작업하는 방법

  1. git은 동시에 작업이 가능하기 때문에 협업 시 원격으로부터 최신 master branch를 pull
  2. 자신이 작업한 local branch로 이동하여 작업
  3. 자신의 local master branch에 2번에서 작업한 내용을 merge
  4. 자신이 작업한 모든 내용이 있는 local master branch를 원격 master branch에 반영

Git Flow

  • git flow는 git을 활용해서 협업을 할 때 5개의 branch를 각각의 역할에 맞게 사용하는 협업기법

모던 애자일 1기에서 사용한 git flow

각 branch 설명

  • master branch
    • 실제로 운영, 배포되어 사용자가 사용하게 될 코드가 있는 branch
    • 가능하면 직접 건드리지 않음
    • hotfix branch, release branch의 코드가 master branch로 merge 됨
  • feature branch
    • 특정 기능을 개발하는 branch
    • 보통 develop branch에서 분리되고, 기능 개발이 완료되면 develop branch로 다시 merge 됨
  • develop branch
    • QA 단계를 거치기 전에 배포를 위해 적용되어야 할 개발이 이루어지는 branch
    • QA가 필요한 기능들은 feature branch에서 develop branch로 merge 작업을 하고 나서 QA 단계로 감
    • QA 단계에 가면 develop branch 코드에서 release branch가 분리되어서 release branch에서 QA 단계 진행
  • release branch
    • 배포를 앞둔 단계에서 QA를 진행하는 branch
    • QA 단계를 거치고, 배포 시점이 되면 release branch는 master branch와 develop branch 두 곳으로 merge 됨
  • hotfix branch
    • 긴급 수정 branch
    • master branch, 즉 이미 운영 중인 서비스에서 긴급한 이슈가 발견되면 급하게 고치는 branch
    • hotfix branch로 이동해서 수정이 되면 develop branch와 master branch로 merge 됨

Git Commit Message

  • 프로젝트를 진행하면서 commit을 많이 하게 될 텐데 이때 commit message만 보고도 어떤 작업을 했는지 알 수 있도록 규칙을 정하고 일관적으로 작성해야 함

모던 애자일 1기에서 사용한 커밋 메세지 컨벤션

Github Issues

  • Issue : 프로젝트를 진행하면서 발생하는 pull requests, bug, develop 등 모든 이벤트
  • github에서는 Issues 기능을 통해 프로젝트에서 발생하는 모든 이슈를 관리할 수 있음
  • 라벨링을 해 이슈별 주제를 구분함으로써 이슈의 양이 많더라도 관리하기 편리하게 해줌
  • milestones 기능을 통해 스프린트 관리할 수 있음

모던 애자일 2기에서 사용한 Github Issues

Github Projects

  • github의 projects는 다양한 이슈를 관리할 수 있는 칸반보드
  • To do : 이슈들 중 해야 할 이슈들
  • In Progress : 현재 진행 중인 이슈들
  • Done : 완료된 이슈

모던 애자일 2기에서 사용한 Github Projects

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기