본문 바로가기

실제 파이썬 코드로 배우는 Git, 그리고 Github 실습

 

Git을 이용해
개발해 본 적이 있나요?

 

 

개발자 면접을 볼 때 꼭 물어보는 것이 있습니다. 바로 Git을 써보았는지 그리고 Git을 이용해 협업을 해 보았는지 말이지요. 최소한의 기본이 갖춰진 스타트업이라면 Git은 필수입니다. 아직도 사내에 Git이 없다면 개발자가 1명이거나 무언가 크게 잘못 되어가고 있다는 징조입니다. 사실 개발자가 1명일지라도 지금부터 당장 누군가와 미팅을 잡아 Git을 도입하세요. 앱이든 웹이든 서비스든 개발자에게 이것은 추천이 아니라 필수적인 요소입니다.

 

 

오늘 소개할 책은 <파이썬 코드로 배우는 Git&Github> 입니다. 실습 환경을 준비하는 것으로 시작하여 GUI 기반의 Git 관리 툴인 소스트리를 이용하여 체험해 보고 명령어 기반으로 적용하는 방법을 배웁니다. 목차는 다음과 같습니다. 1장에서 실습 환경 구축부터 설명해 주고 있어 처음 접하는 사람도 쉽게 따라갈 수 있게 친절하게 설명해 주고 있습니다. 매 챕터가 끝날 때마다 정리를 해주는 챕터가 있어 족집게 과외를 받는 듯한 느낌이 들어 좋았습니다.

  • 1장 실습 환경 구축하기
  • 2장 소스트리로 Git 체험하기
  • 3장 Git의 동작 개념
  • 4장 Git 기본 명령어
  • 5장 Github와 함께 사용하기
  • 6장 Github로 협업하기
  • 7장 브랜치
  • 8장 브랜치 운영 전략

 

 

Git 실습 중심의 구성



이 책의 특점은 실습을 중심으로 구성되어 있다는 점입니다. 사용자에게 친숙한 GUI로 만들어진 소스트리(sourcetree)로 간단하게 Git의 체험해 보고 동작원리를 설명해 줍니다. 백문불여일견이라고 이렇게 실습을 통해 가볍게 맛을 본 뒤 이론으로 들어가는 학습 목차 구성을 보니 너무 잘 구성했다는 생각이 듭니다. 사실 Git이 그렇게 재미있는 도구는 아니거든요. 소스파일 버전 관리에서 발생했던 다양한 애로사항을 아주 나이스하게 관리해 주는 도구입니다. GUI 기반 Git 도구인 소스트리민 잘 써도 되지만 이 책에선 명령어 기반 Git 사용법까지 알려줍니다. 명령어 기반을 알고 나면 작업 속도도 빨라질 뿐만 아니라 어느 플랫폼에서나 어느 개발 환경 IDE에서도 Git 환경 구축이 가능해집니다. 찐 개발자의 길에 들어서는 관문입니다.

 

Git의 3가지 작업 영역과
3가지 파일 상태



3장에서는 Git의 3가지 작업 영역과 3가지 파일 형태에 대해서 알아본니다. Git에서는 개념이라고 하면 커밋, 푸시, 풀 (Commit, Push, Pull) 만 구분하여 사용할 줄 알면 사용하는데 무리는 없지만, 좀 더 개념을 이해하기 위해 3가지 작업 영역에 대해서도 알아봅니다. 개인 코드를 작성하는 로컬 영역인 (1) Working Directory, Git add를 통해 수정된 코드를 올리는 영역인 (2) Staging, Git commit 을 통해 최종 제출하는 (3) Repository 영역으로 나뉩니다. Git이 관리하는 3가지 파일 상태는 수정된 상태인 (1) Modified, 수정 사항이 git add 로 Staging에 올라간 상태 (2) Staged, 수정 사항이 커밋되어 올라간 상태 (3) Committed로 구분된다. 3가지 작업 영역과 매칭하며 생각해 보면 이해에 도움이 됩니다.


 

Git을 명령어로 조작해 보자


4장에서는 Git의 명령어들을 배웁니다. GUI 기반의 Git 관리 앱도 사용하는데 문제는 없지만 Git 명령어들을 익혀두면 어떤 환경에서든 적용이 가능한 능력치가 생깁니다. 게다가 자주 쓰는 명령어는 몇 가지 안 돼서 금방 익힐 수 있습니다. 사용해 보면서 사용하게 될 명령어는 더 생겨나겠지만 일단 git add, git commit, git diff 이렇게 3가지만 알아두시면 업무에 도움이 됩니다.

 

오픈소스의 보물창고
Github와 연동하기


5장에서는 오픈소스의 보물창고와도 같은 Github 서비스와 연동하여 사용하는 방법에 대해서 배웁니다. 개발자 이력서의 포트폴리오들을 보면 Github 아니면 Gitlab을 대부분 사용합니다. Github 은 이미 유명한 오픈소스 프로젝트들이 사용하고 있어서 유명하기도 했지만 2018년 마이크로소프트가 75억 달러(약 8조원)에 인수하면서 더 널리 알려졌습니다. 개발자들 사이에 표준화된 서비스처럼 사용되고 있다는 말에 반증이기도 하지요. Github에 저장소를 만들고 push와 pull을 하며 코드를 관리해 봅시다.

 

 

Git 컨플릭트 났다

 

6장에서는 Github로 협업하는 방법에 대해서 알아봅니다. Git 을 개발자들 간에 협업하며 본격적으로 사용하면 가장 많이 접하게 될 단어는 충돌(conflict)입니다. 코드와 코드 간에 충돌 났다는 뜻인데 그냥 발음 그대로 컨플릭트 났다고도 말합니다. 처음엔 당황할 수도 있는데 찬찬히 들여다보며 충돌 난 부분들을 수정해 주면 됩니다. 스타트업의 개발 문화마다 다를 순 있겠지만 Git 커밋 푸시 풀은 하루 단위로 하면 좋습니다. 이유는 충돌 나는 분량을 일정 수준 이하로 조절할 수 있고, 사람의 기억하는 코드의 분량도 하루 분량으로 적절하게 분할하기 위함입니다. 이렇게 하면 자연스럽게 애자일스러운 개발 문화도 정착할 수 있게 됩니다. 코드 분량이 하루만 넘어가도 많아져서 스트레스도 받고 힘이 듭니다. 사내 개발 문화에 따라 최대한 컨플릭트 나지 않게 펑션 또는 모듈 단위로 쪼개고 해당 단위로 할 수도 있습니다.

 

나뭇가지 뻗어나가듯
브랜치 관리

 

7장에선 브랜치에 대해서 알아봅니다. 브랜치는 뜻 그대로 나뭇가지 개념입니다. 어떤 기능은 1일 만에 개발이 완료되어 통합해야 하는데 어떤 기능은 미완성되어 아직 병합할 수 없는 경우가 있습니다. 이럴 때 브랜치로 나누어 개발하고 나중에 병합을 합니다. 한 저장소 내에서 여러 개의 브랜치를 만들어 다른 작업을 하며 관리할 수 있습니다. 필요시에 브랜치들을 병합하여 하나의 마스터 브랜치에 정리할 수 있습니다. 서로 다른 기능들을 각각 개발자에게 할당해서 동시에 개발을 진행할 때 브랜치가 유용합니다.

 

 

이이런 분들께 추천드립니다

  • 개발자 IT 취업을 준비 중인 취업 준비생
  • 실무에 사용 중이어서 학습이 필요한 개발자
  • 사내 개발자들에게 Git 을 스터디 하고자 하는 스타트업

 

 

▼ 쿠팡 최저가 검색 ▼

 

파이썬 코드로 배우는 Git & Github + 미니수첩 증정

COUPANG

www.coupang.com

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로 이에따른 일정액의 수수료를 제공 받습니다.