개요
개발자는 Java와 JavaScript의 관련성이 ham과 hamster 만큼 서로 다른다는 것을 압니다. 그런데, 막상 Git과 GitHub가 어떤 차이야?라고 물어본다면, 아직 많은 사람들이 정확하게 차이를 알지 못합니다. 채용공고에 "Git/GitHub의 차이점을 아는 분" 이 있는 회사도 있습니다. 그래서 차이점을 정리해보고자 합니다.
버전 관리
버전 관리란 시간에 따라 파일의 변경사항을 추적하고 기록하는 것입니다. 버전 관리 시스템은 이전 버전으로 복구하거나 조회할 수 있는 기능을 제공합니다. 버전 관리는 프로젝트의 수정이 있을 때마다 snapshot을 찍습니다. 따라서 필요한 것을 복구하거나 비교할 때 다양한 버전들을 확인할 수 있습니다.
예를 들어, 프로젝트를 수정하다가 모든 텍스트 정렬이 꼬여버렸다고 가정합시다. 실수를 하더라도, 걱정할 필요가 없습니다. 버전 관리 시스템을 통해 이전 버전을 불러오고 잘못된 부분을 바로잡으면 끝입니다.
Git
Git은 "본인"의 코드와 이력을 기록하고 관리하도록 돕는 버전 관리 시스템입니다. Git은 클라우드가 아닌 본인의 로컬 시스템에 설치되고 관리됩니다. 계속 쌓이는 프로그래밍 버전을 스스로 관리할 수 있습니다. 그 순간만큼은 인터넷이 필요하지도 않고 어떠한 클라우드 서비스 필요 없이 독립적으로 사용할 수 있습니다.
Git이 특별한 이유는 "브랜치" 때문입니다. 사용자는 본인의 코드에서 또 다른 독립적인 로컬 브랜치를 만들 수 있습니다. 즉, 새로운 아이디어가 있다면 새로운 브랜치로 시도할 수 있습니다. 또한 생산적인 업무를 위해 또 다른 브랜치를 만들거나 이전 브랜치로 다시 복구하는 등 쉽게 삭제, 병합이 가능합니다.
하지만, 단점도 있습니다. 개인적인 공간의 로컬 저장소를 사용하기 때문에, 다른 개발자가 실시간으로 내가 작업하는 내용을 알 수 없습니다. 팀원들이 프로젝트의 같은 부분을 수정한다 해도, 서로의 작업을 확인할 수 없습니다.
GitHub
GitHub는 Git 저장소를 관리하는 클라우드 기반 호스팅 서비스입니다. Git 저장소는 호스팅 서비스로 설계되었습니다. Git 저장소 호스팅 서비스는 개인의 로컬 서버 밖에서 Git 버전 프로젝트를 공유하고 기록하는 온라인 데이터베이스입니다. Git과 달리 GitHub는 클라우드 기반입니다. 또한 영리 목적의 서비스입니다. ( 비록 기본적인 저장소 호스팅이 무료로 가능합니다, 이것이 GitHub가 오픈소스 프로젝트로 인기 있는 이유입니다.)
GitHub는 Git의 기본적인 기능을 확장합니다. 직관적이고, 시각화되어 있는 유저 인터페이스를 제공합니다, 그리고 작업관리 도구도 제공합니다
GitHub Marketplace 서비스에는 더 많은 기능들이 있습니다. 클라우드 기반이기 때문에, 개인의 Git 저장소는 원격으로 접근이 가능합니다. 인터넷만 연결되어 있으면 전 세계 어디에서 권한 있는 사람이면 누구나 가능합니다.
GitHub를 통해, 다른 사람과 코드 공유가 가능합니다. 다양한 Git 브런치를 수정하고 개선할 수 있습니다. 따라서 실시간으로 하나의 프로젝트에 전체 팀원이 함께 협력할 수 있습니다. 서로의 작업물을 덮어 씌우지 않고 코드 수정을 하고, 새로운 브랜치를 생성할 수 있습니다. 브랜치들은 마치 복사물 같아서, 만약 사용자들이 push/pull을 하지 않는다면 다른 사용자 저장소의 중심 디렉터리에 반영되지 않습니다.
다른 Git 저장소 호스팅 서비스로는 여러 가지가 있습니다. : GitLab, BitBucket, SourceForge
참고
Git vs Github: What’s the Difference and How to Get Started with Both
'학습' 카테고리의 다른 글
TLS/SSL (0) | 2022.09.05 |
---|---|
CORS란 무엇인가? (0) | 2022.08.05 |
MVC vs MVP vs MVVM (0) | 2020.11.02 |
Framework vs Library vs API (0) | 2020.11.01 |
static vs non-static (0) | 2020.09.21 |