git & github
Git & GitHub이란 주제로 대학교에서 강의를 하게 됐기 때문이다. 강의 자료도 준비해야 하고 스스로도 정리해볼 겸 적어본다.
구글 드라이브처럼 내 파일들을 원격 저장소에 올릴 수 있다.
A. 두 서비스가 원격 저장소를 제공해주는 점에서 동일한 기능을 제공하는 건 맞다. 하지만 GoogleDrive에선 Git을 사용할 수 없다. 파일 올리고 내리는 거 외에 사용하는 기능이 없다면 GoogleDrive가 더 편하다.
A. Git은 Distributed version control system이다. 직역하면 '분산 버전 관리 시스템'이다.
A. 변화/변경(Change)를 관리 (Manage)하는 것.
Version control
: the management of changes to documents, computer programs, large web sites, and other collections of information
A. 분산버전관리 = 분산해서 변화/변경을 관리하는 것.
쉽게 말해서 여기저기에서 버전 관리 할 수 있다.
Git은 파일 버전들을 분산해서 관리할 수 있는 도구이다.
Github은 Git을 사용할 수 있는 리모트(원격) 공간/저장소를 제공해준다.
"조별과제_영미최종.docx"
"조별과제_영미최종_철수최종.docx"
"조별과제_영미최종_철수최종_갑수최종.docx"
"조별과제_영미최종_철수최종_갑수최종_최종제출.docx"
"조별과제_영미최종_철수최종_갑수최종_최종제출_진짜최종.docx"
.....
"조별과제_영미최종_철수최종_갑수최종_최종제출_진짜최종_영미수정_교수님수정.docx"
"조별과제_영미최종_철수최종_갑수최종_최종제출_진짜최종_영미수정_교수님수정_제발최종........docx"
흔히 사용하는 버전 관리 방법이다. 과거 파일을 백업 떠두는 방식이다. 혼자 작업하거나 작은 파일을 단기간에 걸쳐 수정한다면 나쁘지 않은 방법이다.
: A의 컴퓨터에 있는 파일과 B의 컴퓨터에 있는 파일이 같은 버전이라고 보장할 수 없다. 꼭 누군가는 옛날 파일가지고 작업을 하고 있다.
: 어떤 변경이 있었고 누가 변경을 했는지 추적할 수 없다.
같은 파일을 여럿이서 수정하다보면 누군가의 내용은 꼭 덮어써진다. 의도치 않은 오류가 발생한다. 예를 들면 영수가 작업한 부분에 철수의 내용을 넣게 되는 경우 영수의 내용은 사라진다.
변경 전 버전에 대한 정보가 없다. 직전에 변경한 내용이 아니라면 되돌리기 힘들다. 변경한 부분이 많다면 한땀한땀 되돌려야 한다.
하지만 사람 손을 타게 되면 어디서든 실수는 있기 마련이다. 엔지니어는 사람이 하는 일을 믿지 않는다.
Git을 쓰면 위 네가지 문제점에 대해서 자유로워질 수 있다. 특히 작업물의 크기가 커지면 커질수록 진가가 드러난다. 다음 글에서는 "그렇다면 어떻게 사용할지"에 대해서 알아보자.