[리뷰] Do it! 지옥에서 온 문서관리자 깃&깃허브 입문



개요

본 리뷰는 이지스퍼블리싱 출판사 "Do it! 지옥에서 온 문서관리자 깃&깃허브 입문(이고잉,고경희 저)"을 읽고 지식을 정리한 글입니다.

Git은 뭐고? GitHub는 또 뭐여?


아래와 같은 곤란한 상황… 당신도 분명 겪어보셨을 것이다.
그림1

“당신이 무엇을 상상하든 이 파일은 최종파일이 아니다.

설사 최종파일이 나왔다 치자. 다음은 또 무슨일이 기다리고 있을까?

  • 기껏 회사에서 수정했건만.. 집에서 고치려면 USB로 복사해야 하나?
  • 열심히 수정했는데 다른 사람이 손데면서 다 날라갔다!

보기만 해도 짜증나는 이 문제들을 Git은 지옥이라고 표현한다. 그렇다면 해결책은 무엇인가? 책 제목에서도 알 수 있듯이 바로 지옥에서 온 문서관리자 깃&깃허브이다.

쉽게 정리하자면 Git은 분산(여러명이 수정할 수 있다.)버전(최최..종을 알아서 관리해준다.)관리시스템이며, GitHub는 Git으로 생산된 산출물이 저장되는 Git저장소라고 할 수 있겠다. 실용적인 관점에서 접근하자면 지역저장소를 관리하기 위한 도구가 Git이며, 원격저장소의 집합체가 GitHub이다.

위 문제들 때문에 골치가 아프셨다면, 그리고 반드시 해결하고 싶다면 Git&GitHub는 필수다!

Git과 친해지기 어려운 이유


위에서 설명한 지옥을 피하기 위해 반드시 Git&GitHub을 사용하겠다는 다짐은 누구나 할 수 있지만, Git&GitHub과 그 친분을 이어나가는 것은 아무나 할 수 없다.

그 이유로 필자가 경험했던 내용을 위주로 아래와 같이 요약해보았다.

  • Git Bash vs Git GUI
    • Git을 사용하는 방법은 크게 2가지가 있다. Bash는 커맨드라인 모드로 텍스트 기반의 명령어를 한줄식 타이핑하면서 Git을 사용하는 방법이고, GUI는 화면을 마우스로 제어하여 Git을 사용하는 방법이다.
    • 처음에는 물론 GUI가 편하다. 다만 갈수록 복잡해지는 기능을 숙달하기에는 직관적이지 않고 사용하기 어려워진다. 태생이 리눅스 버전을 관리하기 위한 용도로 개발되었기 때문에 Bash 모드에 적응하는 것이 Git에 친숙해질 수 있는 길이다. 다만 그렇게 커맨드 라인으로 타이핑하는 부분 때문에 초반에 낯설고 어려운 진입장벽이 되기도 한다.
  • 리눅스에 대한 사전지식의 필요성
    • 앞서 설명한 바와 같이 Git Bash는 커맨드라인 텍스트 기반의 리눅스 명령어 방식으로 동작한다. 때문에 기본적인 리눅스 명령어에 숙달되지 않으면 버전관리가 어려워지며 다양하고 편리한 기능을 활용할 수 없다.
  • Add - Commit - Push 매커니즘
    • 그동안의 문서 편집기는 저장버튼만 클릭할 수 있으면 되었다. 간혹 되돌리고 싶은 경우 Ctrl+z 단축키를 이용하곤 했지만 겨우 커맨드는 2종류에 지나지 않았다. 그런데 저장만 하면 됐지 Add - Commit - Push 3종 세트는 귀찮고 어렵게 왜 계속 해야하는지 도통 이해가 안된다.
  • 브랜치는 또 뭐냐? 나뭇가지냐?
    • 갑자기 난데없이 나뭇가지가 나온다. 뭔가 들여다보니 수정내용을 커밋한 일련의 모음을 의미하는데 이게 나뭇가지처럼 갈라지기도 하고, 심지어는 합쳐지기도 한다.
    • 대략 여기서부터 멘붕이온다..
  • 깃허브와 원격저장소
    • 지역저장소 하나도 간신히 뗐는데, 이젠 지역저장소를 원격저장소와 연결하란다.
    • 그것도 모자라서 원격저장소에 Push할 때마다 무슨 인증을 계속 하라는데 싫으면 SSH를 쓰란다.
    • 리눅스도 몰라서 해메이는데 SSH는 또 뭐냐.. 이젠 보안도 알아야 하나?
  • 회사 PC집 노트북에서도 동일하게 작업할 수 있다던데..
    • 그러려고 Git을 쓴건데 생각보다 어렵다. 매일 같은 컴퓨터에서 Commit이나 할 줄 알았지.. Git Pull도 다른 PC에선 필수라는 것을이 파악하는데 제법 오랜시간이 걸린다.
    • 거기까진 좋은데 하다보면 파일이 서로 꼬여 Conflict라는 놈이 발생하는데.. 이거 해결이 골때리게 어렵다.
  • 다 알고나니 이젠 남들과 동기화하란다. OTL
    • 날이 갈수록 복잡해진다. 팀원들 각자 별도의 브랜치를 만들기도 하고 승인이 끝나면 팀장의 master 브랜치에 병합도 한다. 기껏 병합했는데 일정 시점이 지나서 또 분기를 한다. 그렇게 분기와 병합을 밥먹듯이 한다. 근데 그 과정에서의 충돌 그리고 심지어 되돌리기도 한다.

괴로워 보이는 일련의 과정이지만 돌이켜보면 생각보다 어렵지 않은 작업이었다. 그만큼 Git이 상당히 직관적으로 개발되었기 때문이다. 문제는 얼마나 쉽고 빠르게 익히느냐 정도인데 현재 필자가 아는 최고 좋은 솔루션은 단연 현재 소개하고 있는 본 도서이다.

이 책을 한마디로 표현하면 뚫어뻥


앞의 챕터에서 설명했던 Git과 친해지기 어려웠던 일련의 시나리오들은 이 책에서 매우 쉽고 간단한 예제를 통해 속시원하게 뚫어준다. 이미 Git의 대부분을 알아버린 이 시점에 이렇게 쉽고 재미있는 책을 늦게 만난것이 야속하지만, 그래도 그간의 Git 사용법을 돌이키고 간혹 몰랐던 Tip을 익힐 수도 있었다.

단연컨데 이 책은 Git을 가장 빨리 익힐 수 있는 방법이다. 이 책의 백미는 초보자들이 겪는 시행착오와 어려움을 일종의 타임라인 순으로 책을 구성하였다는 점이다. 특정 챕터를 익히고 Git을 사용하다보면 궁금점이나 한계에 봉착하는데 대부분의 문제점은 바로 다음장을 펴면 해답이 있을 정도로 놀랍게도 그 흐름이 일치한다. 아래 그림부터 배움의 순서를 중요시 하는 저자의 조언이 등장한다. 순서대로

Git 명령어별로 복잡한 상태에 대한 개념을 명확하게 해주는 점도 이 책의 장점이라고 할 수 있다. 아래 그림은 git status 명령어의 수행 결과에 따라 파일 상태가 어떤 단계에 속하는지 전체 개념을 정리해주는 도식도이다. 개념도식화

집요할 정도로 쉽고 상세한 설명은 마치 독자에게 아무리 무식해도 절대 이 책을 덮지 못하게 만들어 주마.라고 호언장담하는 느낌이다. 그렇게 설명했는데도 어려워할까 두려웠던지 그림의 우측 상단 도움말이 어려운 내용을 반복하여 설명해준다. 도움말

여기서 끝이 아니고 확인사살이 또 있다. 각 장을 마치고 나면 손글씨를 쓰게 한다. 마치 아마존의 CEO 베조스가 보고 혹은 회의 석상에서 전자문서가 아닌 손으로 쓴 글씨를 요구하는 느낌이라고나 할까? 실제로 손글씨가 오랜 기억력을 향상시킨다는 연구결과가 있다. 그래서인지 그림과 같은 통과의례를 마치고 나면 며칠 뒤에도 기억이 생생하다. 확인사살

위 챕터에서 언급했던 Git과 친해지기 어려운 이유 중 하나인 충돌난 문서를 해결하는 부분이다. 대부분의 책 또는 블로그에서 대충 말로만 표현해서 어떻게 해결해야 하는지 막막했었던 경험이 있다. 그런데 이 책은 다르다! 필요한 부분만 정확하게 붉은색 박스로 하이라이트 했고, 유치원생에게 설명한다는 느낌을 받을 정도로 최대한 구체적으로 설명한다. Merge

마찬가지로 회사 컴퓨터에서 내려받아 작업하는 부분이다. git pull이라는 명령어의 핵심 개념을 짚고, 실제 적용한 화면을 통해 실습과 비교할 수 있게 해주고, 확인사살로 도식화를 통해 개념을 정립하게 해준다. 회사컴퓨터와 협업

혼히 풀리, 풀리퀘라고 말하는 pull request에 대한 설명이다. 오픈 소스에서 컨트리뷰터로 활동하기 위한 필수 과정이다. 사실 개인적으로 풀리퀘를 할 수 있다면 Git 관한 한 중수 ~ 고수는 되지 않을까 생각이 든다. 이 명령어는 책의 후반부에 설명이 되어있는데 역시 독자 시행착오의 타임라인을 철저히 고수하여 밀착관계를 유지한다. 풀리퀘

마지막으로 필자가 지금 운영중인 블로그-theorydb와 같은 Github Pages를 활용한 개인 블로그 만들기, Visual Studio Code와 Git의 연동 등 일상생활에 유익한 Tip을 소개하며 책이 마무리된다. Github Pages Visual Studio Code

쓸데없는 군더더기 모두 제거하고 핵심만을 밀착 지도하는 최고의 Git 입문서로, Git을 정복하기에 많은 난관에 부딪혀 포기한 분이 계시다면 이번 기회에 100% 승리하시길 권한다.

누가 읽어야 하는가?


  • Git&GitHub을 사용하고자 하는 모든 분.

  • Git을 정복하기에 많은 난관에 부딪혀 포기한 분.

  • 사내 깃헙을 도입하여 새롭게 Git을 익혀야 하는 IT 개발자 등.

책의 구성 및 요약


이 책은 크게 세부분으로 구성되며, 각 파트에서 다루는 내용을 아래와 같이 요약해 보았다.

  • 1. 깃에서 브랜치까지 (1 ~ 3장)
    • 깃 & 설치 & 리눅스 익히기
    • 저장소 생성, 버전 만들기, 커밋, 파일상태 확인, 되돌리기
    • 브랜치, 정보확인, 병합, 관리
  • 2. 깃허브(4 ~ 5장)
    • 원격저장소, 깃허브, 지역저장소와의 연결, 원격저장소 pull&push, SSH
    • 여러컴퓨터에서의 동기화
    • 협업에서 브랜치 활용
  • 3. 기타 Tip(6장, 꿀팁)
    • 프로필관리, Readme, 오픈소스 프로젝트 참여하기
    • Github Pages를 활용한 개인 블로그 구축
    • Visual Studio Code와 Git 연동 등

요약하며…


위에서 언급한 바와 같이 이 책을 한마디로 표현하자면 Git&GitHub를 익히기 위한 최고의 솔루션이다. 본 도서의 구성이 독자 시행착오의 타임라인 순서를 철저히 고수하며 독자와의 밀착관계를 형성하기 때문이다. 마치 선생님이 옆에 있는 것처럼 궁금한 질문에 대한 답이 바로바로 나와주니 흥미와 몰입도가 저절로 향상된다.

이런 구성이 신기하여 알아보니 저자분이 가독성 좋고 전달력이 뛰어난 책을 집필하시기로 유명한 분이시더라. Git을 익히기에 군더더기는 모두 제거하고 핵심만을 확인 사살하며 뼈 속 깊이 익힐 수 있게 만든 몇가지의 장치가 있다. 굳이 이런 구성까지 눈치채지 못하더라도 은 엄청 빨리 읽혀지는데 내용은 쉬이 잊혀지지 않는 의아한 경험을 하게 될 것이다.

책의 단점은 딱히 찾을 길 없고 입문서를 넘어선 중고급자를 위한 심화 후속편이 나왔으면 하는 바램이다. Git&GitHub이 어려워 손들고 포기한 분이 계시다면, 속는셈 치고 본 도서로 다시 도전하시길 권유드린다. 100% 성공을 보장한다.

<이지스퍼블리싱 출판사>

출판사 이름에서도 알 수 있듯이 초보자도 읽기쉬운(Easy) 서적을 출판하는 회사입니다. IT개발자라면 누구나 한번쯤은 접했을 Do it! 시리즈는 따라하기만 해도 걸작을 만들 수 있기로 정평이 나 있습니다. 온갖 서적을 접해도 해결하지 못했다면 마지막으로 이지스퍼블리싱 도서를 읽어보세요. 그동안 이해하지 못했던 기술과 개념 조각의 퍼즐이 완성되는 것을 느끼실 수 있습니다. Do it! 스터디 룸 카페에 가입하여 공부단으로 활동하시면 책 1권을 선물로 받을 수 있습니다. 커피 몇잔의 가격으로 책 한권이 주는 다양한 실속 가치! 이지스퍼블리싱의 매력입니다.

이지스퍼블리싱 바로가기




© 2019.04. by theorydb

Powered by theorydb