반응형
제가 처음 Git과 Github를 배울 때 헷갈렸던 것이 있습니다.
깃(Git)은 깃허브(Github)의 줄임말 아니었나요?
아니었습니다.
추후에 누군가 위와 같이 궁금증을 가진다면 명확히 설명할 수 있도록 하고자!
그리고
Git은 Github인가요?
와
Github는 Git인가요?
같은 질문에 대해서도 명확히 설명할 수 있게 해봅시다!
Git의 탄생배경을 통해 Git을 알아봅시다.
2000년대에 리눅스라는 운영체제의 중추 역할을 하는 리눅스 커널을 개발하는 대규모 오픈소스 프로젝트가 있었습니다.
Git이라는 것이 존재하지 않던 당시 개발하며 변경사항이 있으면 Patch와 이메일을 통해 관리하였다고 합니다.
소규모 프로젝트라면 꾹 참고 할 수 있겠지만, 대규모 프로젝트에서 이와 같은 방식은 매우 수동적이고 비효율적이었겠죠?
따라서, 2002년부터 리눅스 커널 개발팀은 버전 관리 시스템으로 당시 상용 버전 관리 시스템이었던 BitKeeper를 사용하기 시작했습니다. 당시 BitKeeper 제작사와 리눅스 커뮤니티 사이에는 무료로 사용할 수 있도록 하는 합의가 존재했다고 하네요.
하지만 얼마 지나지 않아 BitKeeper와의 무료 사용 합의가 종료되었습니다. 이로 인해 리눅스 개발 커뮤니티는 새로운 버전 관리 시스템의 필요성을 느꼈습니다.이때, 리눅스 토발즈(Linus Torvalds)는 리눅스 커널 프로젝트의 요구 사항을 충족시키는 새로운 도구를 만들기로 결정했습니다.
그것이 바로 Git입니다! Git의 주요목표는 리눅스 커널 프로젝트의 요구사항을 충족시키기 위해
- 빠른 속도
- 단순한 구조
- 데이터 무결성
- 대규모 프로젝트에서의 성능 최적화 (비선형적 개발 : 동시 다수의 브랜치 생성)
들을 구현해냈습니다.
이 모든 것이 C언어로 개발되었는데요. 사용자는 Git을 자신의 컴퓨터에 설치하여 명령줄을 이용하여 로컬 저장소에서 작업을 수행할 수 있습니다.
즉 Git은 혼자 개발하는 것이 아닌 여럿이서 같이 개발하는 프로젝트에 있어서 효율적으로 '버전 관리'를 하기 위한 분산 버전 관리 시스템(VCS)이라고 할 수 있겠네요.
개발자들이 작성한 이전의 소스코드를 추적할 수 있게 된 것이죠.
그럼 이제 Github에 대해 알아 보기 전에
위에서 로컬 저장소라는 용어를 사용했는데 우선 "저장소"에 대해 알아보겠습니다.
"저장소(repository)"는 프로젝트의 모든 파일과 그 파일들의 수정 이력을 포함하는 디렉토리입니다.
저장소에 대해서는 Git 원리에 대해 다룰 때 다시 깊게 다뤄보도록 하겠습니다.
로컬 저장소란 개발자의 개인 컴퓨터에 위치한 Git 저장소를 의미합니다. 여기서의 모든 작업은 개발자의 컴퓨터 내에서 이루어집니다.
이제 Github에 대해 알아볼 준비를 마쳤습니다.
GitHub는 Git 원격 저장소를 호스팅하는 서비스입니다. 다시 말해, GitHub를 사용하면 Git 저장소의 원격 버전을 인터넷 상에 만들어 여러 사람들과 협업할 수 있게 됩니다.
원격 저장소란 인터넷 상의 서버나 다른 네트워크 위치에 저장된 저장소입니다.
이 원격 저장소를 웹으로 이용할 수 있게 해주는 서비스 중 하나가 바로 Github인 것 입니다!
Git을 기반으로 한 서비스들 중 하나일 뿐이라는 거죠.
이제는 답할 수 있을 것 같습니다.
Git은 Github인가요?
Git은 원격 저장소 뿐만 아니라 로컬 저장소에서 작동하는 만큼 인터넷 연결이 없어도 코드의 버전 관리를 수행할 수 있으므로, Git은 Github가 아니라고 할 수 있습니다.
Github는 Git인가요?
Github는 Git을 기반으로 한 '웹 서비스'입니다. Github는 내부적으로 Git을 사용하지만 엄밀히 따지면 Git 자체는 아닙니다. GitHub는 Git의 원격 저장소 호스팅 서비스를 제공하며, 이외에도 주요 기능으로 코드 리뷰, 프로젝트 관리, 이슈 트래킹 등의 추가 기능들을 포함하고 있습니다.
반응형
'Git' 카테고리의 다른 글
[Github] 깃허브 repository에 폴더 추가하기/추가한 폴더에 파일 옮기기 (0) | 2023.01.29 |
---|