오르카의 아틀리에

SW 마에스트로 과정을 밟으면서 가장 실용적으로 배운 기술 중 하나가 바로 Git이다. 나는 Git을 배우기 전에는 소스코드를 파일 형태로 관리했다. 아마 다른 학부생들도 아래와 같이 관리했을 것이라고 생각한다. (혹은 관리하지 않거나...) 파일 별로 관리하게 되면 아래와 같은 상황이 벌어진다.


사실 이렇게 관리하는 방법은 우리들이 직관적으로 사용해왔다. 내 경우에는 중학교 때부터 PPT 따위를 파일명으로 관리했던것같은데 중학생 조차 생각해 낼 수 있을 정도로 간단하고 직관적인 방법이다. 

무엇이 문제일까?

단순하게 생각나는 점을 보면, 일단 이렇게 관리하게되면 각 버전마다 내가 무엇을 고쳤는지 알 수 없다. 만약 20가지 정도의 파일로 버전을 관리했다고한다면 "이부분은 지금 것말고 예에에전에 만들었던 것이 좋을 것같다"라고 했을 때, 예에에에전이 어떤 파일에 있는지 알 수 없다. 알아보려면 일일히 파일을 뒤져야겠지... 




그럼 파일명 뒤쪽에 어떤 것을 수정했는지 적어놓을까? 뭐 파일명이 엄청나게 길어진다는 단점이 있겠지만 좋다. 아직 더 남았다. 20가지 정도로 관리했다면, 용량은 20배가 되어있을 것이다. 우리는 가난하기 때문에 하드에 용량이 많지 않다. 또, 같은 작업물을 여러명이서 제작한다고 할 때 문제가 생긴다. 동시에 병렬적으로 작업할 때 서로의 최신파일이 맞지 않는다면?!?! 헬게이트가 열린다.


해결법은 바로 형상 관리 툴



이런 문제점을 해결하기 위해 사용하는 것이 형상 관리 툴(Configuration Management Tool)이다. 형상 관리 툴에는 SVN과 Git이 있는데, 요즘은 그 중에서도 Git을 많이 사용하고 있는 추세이다.


Git의 장점?

- 같은 파일을 여려 명이 동시에 작업할 수 있어 생산성이 증가된다

- 수정 내용이 커밋 단위로 관리되어 언제든지 지난 시점의 소스코드로 점프할 수 있다

- 내가 어느 시점에 어느 것을 개발했었는지 자동으로 기록되고 관리된다


Git을 어떻게 배워야하나

사실 직접 해보면서 배우는 것이 가장 좋다. 나의 경우에는 머지를 잘못해서 복구하느라 삽질도 여러번 해봤고 직접 커밋을 해보고 머지를 해보고 하면서 자신만의 깃활용법? 스타일?을 만들어 갈 수 있다.

하지만, 처음 접하는 사람이 Git 도큐먼트를 읽으면서 진행하기보다는 따라하면서 배우는 편이 배우는 속도가 빠를 것이다.(in Action!) 그래서 Git을 따라 배우는 사이트를 소개하고자한다.


사이트 : http://learngitbranching.js.org/ 

Github : https://github.com/pcottle/learnGitBranching


이 사이트는 직접 따라하면서 배우는 Git 학습 사이트이다. Git 기반 오픈소스 커뮤니티인 Github에 오픈소스로 올라와있다. 시각적인 효과도 좋기 때문에 따라하다보면 Git을 활용하는 법을 대략배울 수 있을 것이다.