메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

IT/모바일

[Git, GitHub] 깃, 깃허브란?

한빛미디어

|

2023-05-12

|

by 정호영, 진유림

35,695

✅버전 관리란?

먼저 버전 관리란? 개발 경험이 없더라도 누구나 한 번쯤은 버전 관리의 경험이 있을거예요. RPG 게임할 때를 떠올려 보세요. 한 캐릭터로 게임을 진행하다가 게임을 종료하기 전에 지금까지 진행한 게임 데이터를 저장합니다. 다시 게임을 시작할 때는 이전에 저장한 데이터를 불러와서 이어서 게임을 할 수가 있죠.

 

포토샵으로 이미지를 작업할 때도 생각해보면, 실수한 부분이 있을 때 [Ctrl+Z]를 눌러서 한 단계씩 뒤로 갔던 경험이 있죠? 이렇게 내가 원하는 시점(버전)으로 이동할 수 있게 해 주는 것이 버전 관리이며, 이를 도와주는 툴이 버전 관리 시스템입니다.

 

게임이나 포토샵처럼 개인 컴퓨터에서 혼자 사용하고 변경하는 프로그램이라면 버전 관리 시스템이 없어도 버전 관리를 할 수 있습니다. 그런데 여러 사람이 함께 만드는 프로그램에서는 어떻게 해야 할까요?

 

팀 프로젝트에서 사용할 공용 폴더를 만들고 그곳에 소스 코드를 올려 놓는다고 가정하겠습니다. 이곳에 올려진 최초의 소스 코드를 ‘00 버전’이라고 합시다. 팀원 A가 ‘00 버전’의 소스 코드를 수정해서 ‘01 버전’으로 저장하고, 팀원 B가 ‘01 버전’을 수정해서 ‘02 버전’으로 저장할 수 있을 겁니다. 이렇게 최종 버전을 기준으로 수정하고 순차적으로 번호를 붙여서 저장하면 버전 관리가 됩니다. 그런데 팀원 B와 팀원 C가 동시에 ‘01 버전’을 수정해서 ‘02 버전’으로 저장한다면 어떻게 될까요?

 

 

팀프로젝트 버전 관리.png

 

 

팀 프로젝트에 참여하는 인원이 많을수록, 또 프로젝트 기간이 길수록 어느 파일이 최종 업데이트 파일인지 확인할 길이 막막해집니다. 그래서 여럿이 함께 작업하는 협업 프로젝트에서는 버전 관리를 해야 합니다.

 

 

 


 

✅Git과 GitHub란?

한 줄로 정리하자면 Git(깃)은 버전 관리 시스템이고, GitHub(깃허브)는 Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트입니다.

 

[Ctrl+Z]를 사용해서 이전 단계로 되돌리는 기능에서 더 나아가 내가 원하는 시점마다 깃발을 꽂고, 깃발이 꽂힌 시점으로 자유롭게 이동할 수 있다면 편안하게 새로운 소스 코드를 추가하거나 삭제할 수 있겠죠? 소스 코드 오류가 발생한다면 바로 전에 깃발을 꽂은 시점으로 돌아가면 되니까요. 이를 가능하게 해 주는 소스 코드 버전 관리 시스템이 바로 Git입니다. Git은 소스 코드 버전 사이를 오가는 시간 여행 이상의 기능을 제공합니다. 

 

Git은 데이터를 저장할 공간만 있다면 어디서나 사용할 수 있습니다. 개인 컴퓨터에만 저장한다면 나 혼자 사용할 수 있겠죠? USB에 저장한다면 휴대하면서 어디서든 내가 작업하던 프로젝트를 사용할 수 있을 것입니다. 만약 드롭박스, 구글 드라이브와 같은 클라우드 서버에 올려둔다면 어떨까요? 팀 프로젝트를 진행하는 다른 팀원과 함께 인터넷을 통해 버전 관리를 할 수 있을 겁니다. 이처럼 언제 어디서든 버전 관리를 할 수 있다는 장점은 전 세계의 수많은 개발자가 Git으로 협업하는 이유이기도 합니다.

 

이렇게 Git으로 관리하는 프로젝트를 올려둘 수 있는 대표적인 Git 호스팅 사이트 중 하나가 바로 GitHub입니다. 블로그를 만들 수 있는 곳이 네이버, 다음, 워드프레스 등 다양한 것처럼 Git으로 관리하는 프로젝트를 올릴 수 있는 사이트도 GitHub뿐 아니라 GitLab, BitBucket 등 다양합니다. 우리는 GitHub를 호스팅 사이트로 사용합니다.

 

 

Git 호스팅 사이트 모기업 특징 가격 정책
GitHub.com GitHub Inc
(Microsoft에서 인수)
사용자 1억 명 이상. 세계 최대 규모의 Git 호스팅 사이트 공개 저장소 생성 무료, 비공개 저 장소는 작업자 3인 이하인 경우에 무료. 설치형 버전인 Enterprise를 월 21달러에 사용할 수 있다.
GitLab.com GitLab Inc GitHub에 뒤지지 않는다. NASA, Sony 등 10만 개 이상의 조직에서 사용하고 있다. GitLab 프로젝트 자체가 오픈 소스여서 직접 서비스 발전에 기여할 수 있다. 공개 저장소 및 비공개 저장소 생성 무료. 소스 코드 빌드에 유용한 도구 지원 성능에 따라 월 19~99 달러 부담
BitBucket.org Atlassian 사용자 1000만 명. 이슈 관리 시스템 인 지라(Jira)를 만든 Atlassian이 모기업이어서 지라와 연동이 쉽다. 5명 이하 팀이면 공개 저장소 및 비공개 저장소 생성 무료. 그 이상이면 월 3~6달러 부담

 

 

GitHub에 소스 코드를 올려 두면 시간, 공간의 제약 없이 협업할 수 있습니다. 또한 프로젝트를 공개 저장소로 만들면 이름도, 얼굴도 모르는 전 세계 개발자와 협업할 수 있죠. 이렇게 누구든지 기여할 수 있는 공개 저장소 프로젝트를 오픈 소스라고 합니다. 

 

2023년 기준으로 GitHub에는 3억 7000만 개의 공개 저장소가 있으며, 구글이 만드는 기계학습 라이브러리인 텐서플로(Tensorflow), 애플이 만든 개발 언어 스위프트(Swift), 그리고 10만 개가 넘는 별(GitHub의 좋아요 기능)을 받은 뷰(Vue.js)까지 다양한 오픈 소스가 활발하게 운영되고 있습니다. 오픈 소스는 개발의 꽃이며, Git은 오픈 소스 활동을 전 세계로 확장시킨 일등공신입니다.

 

 

 


 

위 콘텐츠는 『팀 개발을 위한 Git, GitHub 시작하기(개정판)』의 내용을 바탕으로 작성되었습니다.

 


 

댓글 입력
자료실

최근 본 상품0