티스토리 뷰

 

1. Git & Github를 알아야 하는 이유

나는 코드를 조금씩 완성해 가면서 일정 단계에 이르면  파일명을 달리하여 버전을 표시한 복사본을 둔다. 예를 들면 파일명 끝에 버전을 표시하는 방식 - V_1_0_0.py  이런식 - 이다.

내가 이렇게 버전관리를 하는 이유는 방향을 잡고 코딩을 하다가도 다시 돌아갈 일이 있기 때문이다.

 

버전관리는 코딩할 때에만 적용되는 것은 아니다.

우리가 직장생활에서 연초에 업무계획 등 꽤나 무거운 보고서를 작성하다보면 보고서의 전체 포맷이나 보고 내용이 중간 보고과정에서 수정될 수도 있는데 수정해야 할 방향이 이전에 검토되었던 내용이면 이전 자료를 찾아내는 것은 업무효율상 매우 중요한 일이다. 

 

코드를 짜는 일도 방향을 잡고 진행해 나가다가 예상된 결과를 못 얻었을때, 또는 버그를 만난다면 다시 이전의 일정 시점의 코드로 다시 돌아가야할 필요가 있다.  이 경우에도 이전 시점의 코드를 가지고 있다면 많은 시간과 노력을 아낄 수 있다.

 

몇십줄에 코드인 경우에는 이전 시점의 코드에서 수정한 부분을 기억력이 좋다면 알수도 있다. 하지만 코드가 천줄이라면 어떻까? 기능을 개선하기 위해 코드를 수정했지만 버그를 만나 다시 이전 시점으로 돌아가야 한다면 여간일이 아니다.

 

또한 최근에 회사에서 개인 시간에 코딩을 하고 싶다는 생각이 들었고 진행하고 있는 최신 코드를 개인컴에서 회사컴으로, 또는 회사컴에서 개인컴으로 그때마다 메일, usb 등 으로 옮기는 것은 꽤나 귀찮은 일이다.

 

버전관리를 지금처럼 올드하게 하지 않고 좀 더 효율적으로 할 수 있는 방법이 없을까?

 

그렇다면 Git & Github를 사용해야 한다.

(초보자입장에서는 단순히 버전관리 기능이 큰 이유이지만, 대규모 프로젝트와 팀단위로 프로젝트를 진행하는 전문적인 또는 직업적인 개발자들은 버전관리 + 협업 기능도 Git을 사용하는 큰 이유일 것이다.)

 

2. Git 은 무엇인가?

Git은 코드파일의 버전을 관리해주는 프로그램이다. 하나의 시스템인 것이고, github와 같이 git을 호스팅해주는 프로그램과 함께 포괄적으로 얘기한다면 git은 소스제어, 버전제어(또는 관리), 백업 프로그램이라고 얘기할 수 있다.

어떻든 간에 git의 기본은 코드와 파일의 변동을 추적 & 관리하는 프로그램이다.

 

 

Git을 사용함으로써 우리는 언제든지 이전 버전의 코드로 돌아갈 수 있다. 

이전 버전코드로 돌아간다는 것은 Git이 이전 버전의 코드를 모두 가지고 있다는 의미인데 만약 100개의 버전이 있다면 Git은 100개의 버전을 가지고 있다는 의미이다.

 

100개의 버전이 저장된 공간을 Repository(저장소)라고 한다.

 

3. Github 는 무엇인가?

나무위키에서 Github를 찾아보면 내용이 굉장이 어렵다.

현업 개발자가 아니면 내용의 이해가 안되는데 몇가지 Github에 대서 알수 있는 문장을 옮기면 다음과 같다.

  • Let's build from here, together
  • 대표적인 무료 Git 저장소. 2008년 공개했다. Git 호스팅 기능 덕분에 GitHub는 자유 소프트웨어와 오픈소스의 성지로 떠올랐다.
  • 원래는 공개 프로젝트만 무료였고 비공개 프로젝트는 결제를 해야 했으나, MS에 인수된 이후 2019년 1월 초부터 비공개 저장소를 무료로 제공하기 시작했고, 2020년 4월 중순부터 비공개 저장소 공동 작업자수 제한도 풀렸다.
  • 2명 이상의 협력자(Collaborators)를 등록하여 하나의 프로젝트를 가지고 GitHub를 통해 공동 작업할 수 있다.


이를 통해 알수 있는 몇 가지 사실은 다음과 같다.

  • 공동개발이 가능하다.(협업기능, 공유기능)
  • Git이라는 것이 있고, Github를 저장소이다.(버전관리기능, 백업기능)
  • 공개 및 비공개가 가능하다.

100개의 버전을 본인이 사용하는 컴퓨터에 저장(Local Repository)할 수도 있고 온라인상에 저장할 수도 있다.

그렇다.

Github는 온라인 저장소(Repository)이다.