jin***
2021-03-22

이 책은 시나리오를 곁들인 실습으로 시작해서 깃과 깃허브를 처음 접하는 사람 또는 좀 더 깊은 난이도에서 깃과 깃허브를 다루고 싶은 개발자, 디자이너, 기획자 모두에게 유용합니다.
이번에 리뷰할 책은 "팀 개발을 위한 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의 기본적인 개념과 동작원리를 매우 편리하게 익힐 수 있다. 하지만, 초심자들이 방향을 잃는 것을 방지하기 위해, 책의 설명 범위를 줄이고 하이 레벨에서 간결하게 설명하기 때문에, 이 책으로 입문을 하고 나서 반드시 다른 참조용 서적을 보는 것을 추천한다.