[책] Git, 분산 버전 관리 시스템

이 책은 실용주의 프로그래머 시리즈의 최신작으로 Git라 불리는 버전관리 시스템을 다루고 있습니다.

이미 SVN에 익숙해졌는데 왜 Git를 써야할까라는 질문부터 얘기해보겠습니다.

실제 이클립스에서 대다수의 프로그래머가 하는 일은 SVN에만 의존적이지 않습니다. 반드시 로컬히스토리를 같이 사용하게 됩니다.

왜냐면 원격지에 있는 SVN에 커밋하는 건 수많은 애자일 개발론이 가르친대로 단위테스트를 통과하여 버그가 없는 코드만 커밋하는게 기본이기 때문입니다.

하지만 개발 시엔 커밋과 커밋 사이에도 수많은 수정, 저장이 있고 이러한 스냅샷 내에서도 자유롭게 변경점을 확인하여 되돌리거나 수정하는 등의 작업이 이루어집니다.

따라서 실제 개발 시점에서 생각해보면 SVN의 버전 사이에 차이점을 인식하는 이벤트보다는 로컬 히스토리를 뒤져서 처리하는 횟수가 훨씬 많습니다(전 심지어 이클립스를 인스톨하자마자 로컬히스토리 용량부터 늘리고 보는 타입입니다)

어쨌든 이러한 현실 자체가 로컬 저장소와 원격지 저장소가 서로 다른 니즈를 갖고 있다라고 얘기해주고 있습니다.

 

분산버전 관리 시스템이란 쉽게 얘기해 로컬에서 작업할 때는 이클립스의 히스토리 같은 로컬 저장소에 그 이력을 꾸준히 기록해가다가 네트웍 넘어에 있는 원격저장소와는 로컬저장소를 통채로 동기화 시키는 방법입니다.

이렇게 함으로서 이클립스라는 특정 프로그램이 제공하는 히스토리기능에 의존하지 않고(혹은 다른 히스토리 기능) 손쉽게 로컬에서 프로그램독립적인 히스토리를 관리할 수 있으며 네트웍에는 이를 히스토리상태로 동기화 시키므로 보다 지능적이고 향상된 통합이 가능해집니다.

이러한 분산버전관리는 이미 개념이 오래된 내용이지만 Git가 각광받는 이유는 훨씬 더 편리하고 강력하기 때문이겠죠?

최초 이 Git는 간단한 쉘스크립트에서 시작했습니다. 리누스가 새로운 버전의 리눅스를 개발하기 위한 코드 관리 차원의 유틸을 작성한 게 기원이죠.

개발 이전에 개발에 필요한 바른 환경과 자동화를 먼저 생각한 뒤 개발을 해가야한다는 점은 현대 개발규모를 보건데는 거의 필수적이라 할 수 있습니다.

이 책은 다른 실용주의 시리즈처럼 얇고 따라해보기 편하다는 것이 장점이자 단점이라 할 수 있습니다.

 

참조로 현재 Git는 윈도우즈 지원이 여전히 미약하여 SVN처럼 쾌적하지 않습니다. 단지 이클립스 플러그인은 나와있고 나름대로의 유틸도 출시되고 있는 상황입니다.

%d 블로거가 이것을 좋아합니다: