이번에 리뷰할 책은 "팀 개발을 위한 Git, GitHub 시작하기" 이다. Git은 리누스 토발즈가 최초 개발을 시작한 버전관리 프로그램이다. 버전관리의 필요성을 생각해 보자. 과제나 어떤 문서 작업들을 하다보면 대부분 보고서, 보고서_최종, 보고서_진짜최종, 보고서_진짜진짜최종.. 이런식으로 파일을 복사하여 나름대로의 버전관리를 해본 경험들이 있을 것이다. 프로그램을 개발하다보면 그 규모가 몇 만줄의 코드들이 되는 경우도 매우 흔하기 때문에, 이러한 상황에서 진짜진짜최종 같은 방식으로는 효율적인 버전 관리를 하기 어렵다. 그리고, 코드들 사이 연관성이 있기 때문에 규모가 큰 프로그램에서 일부분의 수정은 다른 부분에서의 예상치 못한 결과를 초래할 수 있기 때문에, 버전관리를 통해 코드들의 변화를 추적하면서 효율적으로 관리할 수 있는 것이다. 그리고, 개인의 버전 관리를 넘어서 다른 개발자들과 같이 협업하는 프로젝트에서 git 레포를 공유하면서 개발할 수 있는 웹기반 플랫폼이 github이다. gitlab 등 다른 플랫폼들도 있지만, 아직까지 제일 널리 사용되고 있는 플랫폼은 github이기 때문에 이를 익혀두면 이후에 개발자로서 성장하는데에 매우 도움이 된다.
버전관리 및 협업은 매우 중요한 요소이기 때문에, 시중에 다양한 git/github에 대한 책들이 출판되어 있다. 그중에 이 책은 매우 좋은 입문서라고 생각한다. 보통의 다른 책들은 CLI 바로 git을 다루면서 기본적인 명령어들부터 시작하는데, 이 책은 Git을 상대적으로 더 쉽게 접근할 수 있게 git의 기본 개념들을 쉽게 그림으로 설명한다. 그리고 GUI를 통해 git을 다루면서 초보자들도 쉽게 git을 자신의 워크플로우에 추가할 수 있도록 배려하고 있다. 책의 Part 1이 위의 과정에 해당하며, 대부분의 초심자들은 이 부분만 잘 읽어도 진행중인 프로젝트에 git을 쉽게 적용시킬 수 있다.
Part 2 부터는 Git을 CLI 에서 다루는 것을 설명하는데, 이 책에서는 CLI 를 통해 git의 low-level 명령어들을 사용하거나 초심자들이 드물게 마주치는 상황을 대비한 과도한 설명을 포함하고 있지 않다. 그렇기 때문에, 초심자들이 비교적 쉽게 git/github에 익숙해질 수 있으며, 어느정도 사용자로써 초반 숙련도를 높이는데 집중하고 있다고 생각한다. Part 2의 내용은 Part 1에서 GUI를 통해 git을 사용한 것 그대로 CLI를 통해서 어느정도 사용하면서 익숙해지는 단계에서 마무리를 하기 때문에, CLI나 git을 더 제대로 사용하기 시작하면 매우 광범위한 기능설명을 포함하는 참조용 서적을 따로 구매하는 것이 바람직 할 것이라 생각한다.
결론적으로, Git/Github을 처음 접하는 학생들이나 신입 개발자들에게 매우 유용한 책이며, 이 책을 읽으면서 토이 프로젝트에 살금살금 적용해보면 git/github의 기본적인 개념과 동작원리를 매우 편리하게 익힐 수 있다. 하지만, 초심자들이 방향을 잃는 것을 방지하기 위해, 책의 설명 범위를 줄이고 하이 레벨에서 간결하게 설명하기 때문에, 이 책으로 입문을 하고 나서 반드시 다른 참조용 서적을 보는 것을 추천한다.