✅ 버전 관리(Version Control System)
깃과 깃허브의 차이점에 대해 알아보기 전에 버전 관리에 대해서 간단하게 살펴볼 필요성이 있다. 버전 관리란 시간에 따라 파일의 변경사항을 추적하고 기록하는 것이다. 버전 관리 시스템은 이전 버전으로 복구하거나 조회할 수 있는 기능을 제공한다. 버전 관리는 프로젝트의 수정이 있을 때마다 snapshot을 찍는다. 따라서 필요한 것을 복구하거나 비교할 때 다양한 버전들을 확인할 수 있다. 만약에 프로젝트를 하다가 코드가 망가졌다고 하더라도 버전 관리 시스템을 통해 이전 버전을 불러오고 잘못된 부분을 바로잡으면 된다.
✅ Git
Git은 '본인'의 코드와 이력을 기록하고 관리하도록 돕는 버전 관리 시스템(VCS)이다. Git은 클라우드가 아닌 본인의 로컬 시스템에 설치되고 관리된다. 계속 쌓이는 프로그래밍 버전을 스스로 관리할 수 있고, 그 순간만큼은 인터넷이 필요하지 않으며 어떤 클라우드 서비스 필요 없이 독립적으로 사용할 수 있다.
Git이 유용한 또 다른 이유로는 '브랜치' 때문이다. 사용자는 본인의 코드에서 또 다른 독립적인 로컬 브랜치를 만들 수 있다. 즉, 새로운 아이디어가 있다면 새로운 브랜치로 시도할 수 있다. 또한 생산적인 업무를 위해 또 다른 브랜치를 만들거나 이전 브랜치로 다시 복구하는 등 쉽게 삭제, 병합이 가능하다.
단점으로는 개인적인 공간의 로컬 저장소를 사용하기 때문에 다른 개발자가 실시간으로 내가 작업하는 내용을 알 수 없다. 팀원들이 프로젝트의 같은 부분을 수정한다고 해도 서로의 작업을 확인할 수 없다.
✅ Github
Github는 Git 저장소를 관리하는 클라우드 기반 호스팅 서비스이다. Git 저장소는 호스팅 서비스로 설계되었다. Git 저장소 호스팅 서비스는 개인의 로컬 서버 밖에서 Git 버전 프로젝트를 공유하고 기록하는 온라인 데이터베이스이다. Git과 달리 Github는 클라우드 기반이다. 클라우드 기반이기 때문에 개인의 Git 저장소는 원격으로 접근이 가능하다.
GIthub를 통해 다른 사람과 코드 공유가 가능하다. 다양한 GIt 브런치를 수정하고 개선할 수 있으며 이를 통해 실시간으로 하나의 프로젝트에 전체 팀원이 함께 협력할 수 있다. 서로의 작업물을 덮어 씌우지 않고 코드 수정을 하고, 새로운 브런치를 생성할 수 있다.
🔎 한줄정리
GIt이 버전관리를 위한 소프트웨어라면 Github는 GIt으로 저장되어 원격전송된 내역들이 저장되는 클라우드 호스팅 서비스 (Git은 카메라, Github는 유튜브)
참고
https://codevang.tistory.com/217
https://escapefromcoding.tistory.com/281
'Computer Science' 카테고리의 다른 글
[DATABASE] ORM이란? (0) | 2023.01.18 |
---|---|
추상클래스(Abstract)와 인터페이스(Interface)의 공통점과 차이점 (1) | 2023.01.15 |
[DATABASE] Transaction과 ACID (0) | 2023.01.12 |
SOLID란? 객체지향 설계 5원칙(Python) (0) | 2023.01.11 |
[네트워크 전송계층] UDP/TCP 특징 차이 (0) | 2023.01.11 |