추천 게시물

[일상다반사] 유데미 '개발자영어' 보충 자료 업로드와 12,000원 쿠폰 발급 소식

지난 번에 [일상다반사] 유데미 '개발자영어' 330명 기념 11,000원 쿠폰과 보충 자료 업로드 소식 을 전해드렸는데, 현재까지 1,200분이 신청해주셨고 100% 수강해주신 분들도 늘어나고 있기에 성원에 감사드리기 위해 보충 자...

토요일, 10월 19, 2013

[독서광] 프로 Git : 그림으로 이해하는 Git의 작동 원리와 사용법

지난 번 [B급 프로그래머] hg/git 클라이언트인 SourceTree에서 git 책 한 권을 소개하겠다고 약속했는데, 까마귀 고기를 먹은게 아니라 책을 늦게 읽는 바람에 이제서야 독후감을 올려드릴 수 있게 되었다. 오늘 소개할 책은 git 책 중에 딱 한 권만 골라라고 요청이 들어올 경우 두 번 생각하지 않고 선택할 "프로 Git: 그림으로 이해하는 Git의 작동 원리와 사용법"이다.

오픈 소스의 활성화와 맞물려 국내에서도 이미 DVCS가 상당히 많이 보급되었기에 이미 git에 대한 이야기는 많이 들어봤을 것으로 생각한다. 깃허브는 이미 명실상부 오픈소스 저장소의 대명사로 자리잡고 있고, 한 때는 전문가의 전유물로 알려진 git는 이제 좋든싫든 기초 지식 정도는 알고 있어야 원활한 오픈소스 프로젝트 진행이 가능한 상황으로 가고 있다. 하지만 git의 진입 장벽은 높기로 악명이 자자하다. 이런 난국을 어떻게 돌파해야 할까? 정답은 바로 '프로 Git'다. 설명을 위한 다이어그램이 아주 다채롭고 풍부한 이 책은 깃허브에 근무하면서 git 전도사로 유명한 스캇 샤콘이 집필했기에 간결하면서도 쉬우면서도 정확하다는 특징이 있다(보통 이 모든 특징을 책 한 권에서 찾아보기가 쉽지 않다). git의 명령 체계는 고수준(Porcelain)과 저수준(Plumbing)으로 나뉘어져 있는데, 이 책은 둘을 절묘하게 잘 나눠 설명한다. 고수준 명령만 사용해도 대다수 작업에 어려움을 느끼지 않지만, 살다보면 저수준 명령을 사용해야 할 경우가 생기기 마련이다. 또한 git의 이해를 넓히려면 저수준 명령으로 눈을 돌려야 한다. 따라서 스캇 샤콘은 본문에서 꼭 필요한 경우에만 저수준 명령을 제시하고, 실제 저수준 명령의 동작 원리는 9장 'Git의 내부'에서 집중적으로 설명한다. 하드코어한 개발자라면 바로 9장부터 읽으며 "어라? git 코어는 일반적인 키-값 저장소에 포인터 개념을 결합해놓은 물건이잖아!"라고 외치며 낄낄거릴지도 모르겠다.

바쁜 독자를 위해 간략하게 이 책의 활용 방안을 소개하자면, 우선 2장 'Git의 기초'와 3장 'Git의 브랜치'를 읽는다. 그리고 나서 조금 써본 다음에 다시 5장 '분산환경에서의 Git'와 6장 'Git 도구'를 읽어본다. 그리고 실제 내부 동작 방식이 궁금한 독자라면 적절한 시점(응?)에서 9장 'Git의 내부'를 읽으면 git를 프로젝트에 적용할 준비가 완료되는 셈이다. 기존 cvs/svn과 같은 버전 관리 시스템에 익숙한 독자라면 아마 git의 파격적인 개념과 접근 방법을 접하면 거의 기절 초풍할지도 모르겠다는 생각을 해본다(이게 바로 git를 처음 접할 때 멍해지는 이유다). cvs/svn을 알고 있기 때문에 유리한 면도 있지만 불리한 면(특히 브랜치와 태그 관리 방법에 들어가면 완전 신세계가 펼쳐진다)도 있으므로 고정 관념을 버리도록 최선을 다하면 좋은 결과를 얻지 않을까 싶다.

독자 여러분을 위해 보너스 힌트를 드리려 한다. 이미 알고 계신분들도 있겠지만, 프로 Git는 원래 PDF 형태로 한국어 번역판이 공개되어 있었다. 자세한 내용은 '프로 Git', 이미 공개된 내용을 왜 책으로 만들었냐고요?를 살펴보기 바란다. 공개된 문서를 다듬어 정리된 번역서 품질이 아주 좋기 때문에 굳이 원서를 읽을 필요가 없다는 생각이다. 그리고 혹시 Hg(Mercurial)에서 git로 넘어갈 필요가 있다면 Mercurial for Git users를 읽어보기 바란다. 원래는 Git 사용자를 위해 만들었으나, Hg 사용자라면 반대 방향에서 접근하면 이해가 손쉬울 것이다.

결론: 고민할 필요없다! 'clone'만 간신히 할줄아는 초급 git 사용자는 물론이고 'branch를 따고 합칠줄도 아는' 중급 git 사용자 모두에게 강력하게 추천한다.

EOB

댓글 없음:

댓글 쓰기