본문 바로가기
학부 생활 + 랩실/Git, GitHub

Git Tutorial(1) - Git? GitHub?

by 프롭 2026. 3. 16.

 

개인 프로젝트 구상을 하고있는데 노트북 환경과 컴퓨터 오가며 작업하려다, 문득 생각이 나서 개발자의 기본 소양 Git, GitHub에 대해 간단히 적어보려 한다. 작년 학부 전공 수업에서 다뤘었는데 당시에는 리눅스 환경에서 사용했었다. 명령어로 간단히 실행할 수 있기에 처음 제대로 접하고 엄청 간편하다 생각했었다. 윈도우 환경에서는 좀 더 보기 쉽게 다룰 수 있어 보이는데 기본적인 개념은 같을 것이라 생각되기에 리눅스 환경에서 배웠던 것을 토대로 정리하려 한다.


 
Git 소개

 

1. Git 설치

윈도우 에서는 GitHub Desktop 설치 파일을 받아 설치를 해야하는데 리눅스에서는 간단한 명령어로 끝이다.

$ sudo apt install git
 

2. Git?

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

버전 관리 시스템은 파일의 변화를 시간에 따라 기록하여 과거 특정 시점의 버전을 다시 불러올 수 있는 시스템을 뜻한다. 일반적으로 여러 버전의 파일 따로 저장하는 식으로 많이 사용한다. 파일명에 버전명과 수정 사항을 넣는다.

 

문서 같은 경우 딱히 다른 방법도 없고 이런식으로 관리해도 잘 작동할 수 있다. 그러나 프로그램 소스 코드는 잦은 수정과 여러 사람과 협업하는 경우가 많기에 이런 식으로 관리하기 어렵다. 그래서 소스 코드를 작업한 메시지와 함께 버전 별로 저장하는 데이터 베이스 비슷한 시스템이 나타나기 시작했고 CVS, Subversion, Perforce 등의 중앙 집중식 버전 관리 시스템(CVCS : Centralized Version Control System)이 유행했다. 중앙집중식은 하나의 서버에서 여러 사람이 업한 이력을 모두 가지고 있고 각 client는 서버를 통해 다른 사람의 작업 내용을 받을 수 있다.

 

이러한 중앙집중식 버전 관리 시스템(CVCS)의 단점은 중앙 서버가 고장나면 모두 망한다는 것이다. 그래서 나온 것이 분산 버전 관리 시스템(DVCS : Distributed Version Control System)이다. DVCS는 각 로컬 저장소에 모든 사람의 이력이 저장되기에 서버가 고장나도 손실이 없다. DVCS로 Git, Mecurial, Bazaar, Darcs 등이 있는데 이중 당연 Git의 점유율이 압도적이다. 그 이유는 다음과 같다.

 

  • 대규모 프로젝트를 관리하더라도 속도가 빠르고 적은 용량을 유지
  • 단순한 구조
  • 동시 다발적인 브랜치 분기와 병합을 통한 효과적인 분산 개발 시스템 제공
  • 오프라인에서도 과거 이력 조회와 commit 가능

 

등등 매우 다양한 이유가 있다. 오늘날의 Git은 소프트웨어를 개발하는 사람이라면 필수가 되었다.

 

3. GitHub?

Git은 혼자 쓸 때는 단순히 버전 관리 시스템이지만 팀으로 사용할 때는 여러 사람들 사이의 협업 툴이다. 여러사람이 협업한 결과를 자동을 병합해주고 병합 과정에 conflict가 있으면 개발자가 이를 해결하도록 유도한다. 모두가 같은 곳에서 개발하는 것이 아니고 혼자 개발 하더라도 여러 곳에서 개발한다면 언제 어디서나 간편히 인터넷을 통해 접근할 수 있는 온라인 저장소가 필수다. 그렇게 GitHub의 서비스가 시작되었다. GitHub은 단순히 온라인 저장소만 지원하는게 아니라 GitHub에서 소스 코드 작성 및 변경, 브랜치 병합 등이 가능하며 여러 유용한 툴을 지워한다.

 

https://github.com/