[For beginners] What is Git, and Github? (컨셉잡기)
Do you know git, and GitHub? ̶두̶유̶노̶ ̶김̶치̶?̶
여러분은 git, GitHub가 무엇인지 알고 계십니까?
“아, 이름만 들어봤어요.” 또는 “잘 몰라요.” 라고 생각하시는분은 저와 함께 git 과 GitHub 가 무엇인지 알아보도록 하고
git 과 GitHub를 잘 알고있고, 사용하고, 무엇인지 자신있게 설명 하실 수 있는분들은 뒤로가기 누르시거나,
댓글로 추가설명 및, 오류 지적해주시면 감사하겠습니다.
설명에 앞서 제 이야기를 해보자면, 저는 데이터사이언스 과정에 참가하기 이전엔 git, github 뭔지 잘 몰랐습니다.
이런 저런이유로, 깃허브에 들어가 필요한 파일들을 다운보며 든 생각은, 많은 사람들이 깃허브를 이용하여 자신들의 창작물들을 배포?Publish?하는
“파일쉐어링 서비스인가 보다.” 라고 이해하고 있었고.
“깃허브 사용해보신적 있어요?, 깃허브가 뭔지 아세요?”
라고 질문을 받을 때면, “예!” 라고 당당하게 대답했던 적도 있습니다. (모르는 사람이 더 당당하다고… 아무튼…)
어느날 우연히 노마드코더님의 영상 ‘깃. 깃허브. 기초개념 잡아드림. 5분 순삭.’ 보면서도 완전히 이해 하지 못하여 “아… 그런가 봉가…” 하면서 넘어 갔습니다.
“백문이 불여일견; 백번 질문 하는것 보다, 한번 보는것이 낫다.” 라는 말이 있듯이.
어제 Challenge Assignment중 fork, Pull Request 연습하면서, “아, 이게 그 말이구나!?” 라고 깨닫고, 느낌점을 여러분들과 나누어 보려 합니다.
So, what is a git. (GitHub는 조금 뒤에 설명).
위키피디아의 설명을 빌리자면.
“Git is a distributed version-control system for tracking changes in source code during software development.”
“ ‘깃’은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.”
<img src=”https://t1.daumcdn.net/cafeattach/aVeZ/a4c0e75f12968c6bfd30bed60053ffbf888f3c2f" alt=”이게뭔…” width=”300px”> 라고 느껴지신다면.
#### 그나마 소비자/유저가 사용할 수 있는 가장 git과 비슷한게 하나 있습니다.
맥(Mac)에는 ‘타임머신’이라는 백업 기능이 있습니다.
백업은 언제생길지 모르는/ 혹시 모르는 data loss(데이터 손망실)에 대비하여, 개인에게 중요하다고 판단되는 자료들은, 외장하드, 외장 USB에 복사본을 생성하여 안전하게 보관하는것을 말 합니다.
맥의 타임머신은 사용자 컴퓨터에있는 문서, 사진, 음악과 같은 전반적인 자료들을 ‘안전한 장소’(사용하는 컴퓨터가 아닌, 물리적으로 분리된 공간에) 복사하여 저장하는 일반적인 백업 기능을 수행하지만, 다른 데이터 백업 서비스와 가지는 중요한 차이점이 있습니다.
## 그것은 바로!
<img src=”https://mblogthumb-phinf.pstatic.net/20130406_3/rebirthday83_1365247397721x02e3_PNG/a.png?type=w2" alt=”카페베네_엔딩_크레딧” width=”x%”> ~~커쥬아 마 걸~.~~
**장난입니다.**
## 바로!!!!
#### 타임머신은, 단순히 ‘파일만’ 백업해두지 않습니다.
무슨말이냐 하면, 일반적으로 우리가 생각하는 백업은 복사기로 복사한것과 같이, 똑같은 파일을 만드는것이 아니라,
파일이 어떻게 변경이 되어왔는지를 기록하는 방식입니다.
“그래서 뭐 어쩌라고요…” 라고 생각드시는 분들께 설명을 추가하자면…
“우리는 종종 인생을 살면서, 아 그때로 돌아갈수 있으면 좋을텐데…” 라는 후회를 합니다. ~~(저는 그렇습니다.)~~
타임머신은 적어도 (컴퓨터 상에서 일어났던일 일들에 대해서) 그것을 **가능하게** 해줍니다.
지금은 필요가 없다고 생각되어 무심코 지워버린 문서파일, 사진 파일도, 타임머신을 통해 “시간을 거슬러 올라가다보면” 복구 할 수 있게 해줍니다.
타임머신은 백업된 파일들이 변경된 부분이 있는지 확인하여, 사용자가 파일을 변경 할 때마다, 새로운 **’버전’**을 생성하여.
변경되기 전의 파일(버전 1.0)과, 새롭게 변경된 파일(버전 1.1)을 각 각 저장하여 보관합니다. (버전 컨트롤)
한가지 파일을 여러가지 버전을 저장한다는것은 실제로 불가능한 일은 아니지만,
내 컴퓨터안의 모든 파일들을 내가 혼자서 수작업으로 버전 컨트롤한다고 했을 때 얼마나, 귀찮고 짜증나는 작업이 될까 상상해 보세요…
‘타임머신’은 Mac OS 백업과 컴퓨터 내의 파일들의 버전 컨트롤 수월하게 해주는 애플에서 제공해 주는 Mac OS의 기능.
(Apple Time Machine 은 2007도에 소개가 되었으니 git의 기능 일부분을 일반 사용자가 이용 할 수 있게 해준것.)
# 아니, 그래서 git이 뭐냐고. ~~(버전관리 해준다고!!!!)~~
git은 마치 파일을 24시간 365일 감시 하는것 같아서, 누가, 어떤 파일을, 언제, 어떻게 바꾸었는가(수정하였는가)와 같은 모든것을 기록하여 버전관리 (**_Version-Control_**)를 수월하게 해주는 인터페이스.
# GitHub는 이와 같은 git을 사용하는 사람들을 이어주는 클라우드 플랫폼.
### 우리의 일상에서 사용하는 것으로 비유를 하자면…
G suite으로 파일을 공유를 하면, 여러명이서 동시에 하나의 파일에서 일을 할 수도, 편한시간에 접속하여 일을 가능하게 해주는 건 구글의 클라우드 서비스 덕분입니다.
github는 git을 사용하는 사용자들을 이어 주는 플랫폼이면서, git의 기능도 수행합니다.