모든 개발자의 필수 지식, 깃&깃허브 버전 관리
『모두의 깃&깃허브』 강민철 저자 인터뷰
이 책의 가장 큰 특징은 '소스트리(SourceTree)'라는 프로그램을 이용해 '명령어 없이도 깃을 다루는 방법'까지 소개하고 있다는 점입니다. (2022.08.19)
어떻게 코드를 작성하는지 배웠다면, 이제는 어떻게 코드를 관리해야 하는지 알아야 한다. 어느덧 필수 교양이 된 버전 관리 시스템, '깃'과 '깃허브'! 『모두의 깃&깃허브』와 함께라면 누구나 쉽게 버전 관리를 시작할 수 있다.
『모두의 깃&깃허브』는 어떤 책인지 소개해주세요.
『모두의 깃&깃허브』는 제목 그대로 깃과 깃허브를 학습할 수 있는 책입니다. 버전 관리는 최근 개발자의 필수 지식이 되었다고 해도 과언이 아닙니다. 하지만 이는 개발자가 되기 위해 무작정 공부를 시작했다면 자칫 놓치기 쉬운 부분이기도 하지요. 『모두의 깃&깃허브』는 그저 책을 따라하기만 해도 자연스레 깃과 깃허브가 몸에 익을 수 있도록 구성된 초심자를 위한 책입니다. 설치 방법부터 실습까지 단계별로 안내되어 있으니, 누구나 편하게 읽으며 개발자의 필수 지식인 버전 관리를 습득할 수 있습니다.
깃으로 버전을 관리한다고 하셨는데, 버전 관리란 무엇인가요? 그리고 깃, 깃허브와 어떤 관련이 있나요?
버전 관리라는 말이 조금 거창하지만, 버전 관리는 작업의 변경 사항을 관리하는 것을 의미합니다. 지금까지 만든 소스 코드가 어떤 변화를 거쳐 현재의 모습이 되었는지 확인해 본다든지, 과거의 시점으로 작업을 되돌린다든지 하는 작업이 버전을 관리하는 작업이라 볼 수 있지요. 깃은 이러한 버전 관리를 가능케 하는 도구입니다. 깃을 이용해 버전 관리를 할 수 있는 셈입니다. 그리고 깃허브는 이렇게 깃으로 버전이 관리된 프로젝트를 인터넷 상에서 관리할 수 있도록 하는 웹 서비스입니다.
요약하면 버전을 관리한다는 것은 작업의 변경 사항을 관리하는 것, 깃은 이러한 버전을 관리할 수 있는 도구, 깃허브는 깃으로 관리된 다양한 프로젝트를 온라인 상에서 관리할 수 있는 웹서비스라고 볼 수 있겠네요. 깃 이외에도 버전을 관리하는 도구는 있지만, 최근에는 거의 대부분이 버전을 관리하기 위해 깃을 이용합니다. 그리고 깃허브를 이용하여 여러 개발자들이 협업하여 개발하기도 합니다. 참고로 이 책에서는 깃을 이용한 이러한 버전 관리 방법과 깃허브를 이용한 개발자 간의 협업 방법까지 안내하고 있습니다.
깃과 깃허브는 익히는 데 많은 기반 지식을 요구하나요? 학습의 난이도나 기간을 알려주세요.
특별한 기반 지식은 필요하지 않습니다. 또한 깃과 깃허브의 기본적인 동작을 이해하는 데 3일에서 일주일 정도면 충분하다고 봅니다. 물론 깃과 깃허브의 세세하고 심화된 동작까지도 빠짐없이 학습하고자 한다면 이보다 더 긴 시간이 요구되겠지만, 현업에 사용할 때 문제가 없을 정도의 지식을 갖추는 데에 필요한 기간은 3일에서 일주일이면 충분하다고 생각합니다.
깃을 이용해 버전이 관리되는 유명한 프로젝트에는 어떤 것들이 있나요?
깃으로 버전을 관리하는 프로젝트는 깃허브에서 쉽게 찾아볼 수 있습니다. 텐서플로, 쿠버네티스, 리액트, 장고 등 많은 개발자분들이 관심을 가지는 유명한 프로젝트들이 모두 깃으로 버전이 관리되고 있음을 볼 수 있습니다. 이 예시뿐만 아니라 최근 유망한 프로젝트의 이름을 일단 깃허브에 검색해보면 검색이 되는 경우도 많습니다. 또한, 이렇게 깃허브로 공개한 오픈 소스 프로젝트뿐 아니라 공개되지 않은 수많은 소프트웨어들이 깃을 통해 버전이 관리되고 있을 것이라 예상합니다.
시중에 다양한 깃, 깃허브 관련 도서가 있는데, 『모두의 깃&깃허브』만의 장점이 있을까요?
이 책의 가장 큰 특징은 '소스트리(SourceTree)'라는 프로그램을 이용해 '명령어 없이도 깃을 다루는 방법'까지 소개하고 있다는 점입니다. '소스트리'는 명령어 없이도 시각적으로 편리하게 깃과 깃허브를 다룰 수 있는 도구입니다. 실제 현업 개발자분들도 많이 사용하고 있습니다. 물론 소스트리의 설치 방법과 실습 또한 책에 자세하게 안내되어 있습니다.
앞서 깃은 버전을 관리하는 도구라고 소개한 바 있는데, 깃은 본래 명령어를 기반으로 사용하는 도구입니다.
제가 깃/깃허브 온오프라인 강의를 여러 번 진행했는데, 깃 명령어를 기반으로 수업을 하다보면 자칫 명령어 암기 수업이 되어버리거나 명령어에 익숙하지 않은 수강생들은 어려움이 겪게 되더라고요. 깃을 통한 버전 관리의 본질은 명령어 암기가 아님에도 불구하고 말입니다. 그래서 이 책을 크게 「명령어 없이 깃 배우기」, 「명령어로 깃 다루기」 두 부분으로 나누었습니다. 「명령어 없이 깃 배우기」에서 소스트리를 이용해 명령어 없이 편리하게 깃과 깃허브를 학습해보고, 「명령어로 깃 다루기」에서 명령어를 기반으로 깃과 깃허브를 다루는 방법을 학습해볼 수 있습니다. 이로써 무작정 명령어를 암기하지 않고도 버전 관리의 본질을 학습할 수 있게 됩니다.
취업을 준비하는 입장에서 깃과 깃허브를 활용할 수 있는 방법에는 어떤 것들이 있을까요?
깃허브는 깃을 이용해 버전을 관리한 프로젝트를 관리하는 웹서비스라고 언급했었지만, 최근에는 개발자들의 포트폴리오, SNS로써 활용되기도 합니다. 깃허브에 회원 가입을 하고, 깃허브 프로필을 꾸며보고, 깃으로 관리한 여러 프로젝트들을 업로드해보라고 조언해드리고 싶습니다. 그리고 깃으로 버전이 관리되는 여러 유명 오픈 소스 프로젝트에 소스 코드를 기여하는 것 또한 깃허브를 사용해 협업 역량을 어필할 수 있는 좋은 지표가 됩니다.
깃과 깃허브 이외에도, 개발자가 갖춰야 하는 필수 지식에는 어떤 것들이 있을까요?
우선 관심 분야에서 많이 활용되는 프로그래밍 언어나 프레임워크/라이브러리를 숙지하는 것은 기본이라고 생각합니다. 뿐만 아니라 깃을 비롯한 다양한 개발자를 위한 도구를 다뤄 보고, 개발 분야를 막론하고 많이 요구되는 필수적인 컴퓨터 과학 전공 지식을 갖추는 것 또한 중요하다고 봅니다. 모든 개발자가 전공자일 필요는 없으나 비전공자 개발자라고 할지라도 필수적인 컴퓨터 과학 전공 지식은 갖추어야 하기 때문입니다. 이러한 전공 지식에는 컴퓨터 구조, 운영 체제, 네트워크, 데이터베이스, 자료 구조, 알고리즘 등을 꼽을 수 있을 것 같습니다. 개발자를 희망하는 비전공자, 혹은 전공 지식을 잊어버린 전공자들을 위해 최근 개인적으로 이러한 전공 지식 관련 서적 및 강의들을 많이 만들고 있으니 많은 분들이 도움을 받을 수 있었으면 합니다.
*강민철 리눅스 커널과 클라우드, 보안에 관심이 많은 개발자이자 연구자이다. 취미로 오픈 소스 기여와 버그 헌팅을 하고, 부업으로 온·오프라인 강의를 하고 있다. 강의와 집필로 지식을 나누고, 코드와 논문으로 지식을 발굴하는 삶을 지향하며 훗날 세계 최고의 엔지니어가 되길 꿈꾸고 있다. |
추천기사
관련태그: 채널예스, 예스24, 7문7답, 모두의깃&깃허브, 깃, 깃허브, 강민철
<강민철> 저18,000원(10% + 5%)
"여러 사람과 협업하고 있는데, 코드 관리는 어떻게 해야 하지?" "내 코드를 예전 버전으로 되돌리고 싶어!" "코드를 백업하고 싶어. 그리고 여러 버전으로 나누어 관리하는 기능도 필요해!" 557개 일러스트와 그림으로 배우는 가장 쉬운 깃&깃허브 입문서! 이 모든 상황의 해법은 버전..