SY 개발일지
article thumbnail
Published 2023. 4. 16. 15:24
GIT과 GITHUB CS 정리/개발 상식

Git과 Github의 차이에 대해 묻는 면접 질문이 들어오는 경우도 있다고 하니 한번 정리해보자

 

GIT

Git은 리누스 토발즈가 2005년에 만든 분산 버전 관리 시스템(DVCS, Distributed Version Control Systems)이자 오픈 소스 버전 관리 시스템으로, Linux 소스코드를 관리할 목적으로 개발되었다. 오픈 소스 뿐만 아니라 상업용 프로젝트도 포함하여 엄청난 수의 소프트웨어 프로젝트들이 버전 관리를 위해 Git에 의존하고 있다. 

분산 버전 관리 시스템으로서 빠른 수행 속도에 중점을 두고 있는 것이 특징이며 데이터 무결성, 분산, 비선형 워크플로를 지원한다. 따라서 소스 코드가 변경된 이력을 쉽게 확인할 수도 있고, 특정 시점의 버전과 비교하거나 특점 시점의 코드로 되돌아갈 수도 있다.

소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만 어떠한 집합의 파일의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. 깃을 통해 같은 파일에 대한 각기 다른 버전을 보관할 수 있다. 예를 들어 마지막 부분만 다른 3개의 파일이 있을 때 깃이 없다면 3개의 파일을 각각 따로 작업을 해야만 한다. 이 때 3개의 파일이 공통으로 갖고 있는 한 가지를 바꿔야 한다면 3개의 파일을 다 변경해야 한다. 하지만 깃을 이용해서 3개 파일을 한번에 관리하여 해당 변경사항을 모든 각기 다른 3개의 파일에 바로 적용할 수 있도록 도와준다.

또한 여러 명의 에디터와 함께 일하는 경우에 같은 파일을 가지고 여러 명과 함께 일을 할 수 있다. 그래서 서로의 변경사항과 충돌하는 일 없이 일을 할 수 있다. 즉 나의 파일과 깃 히스토리를 에디터와 공유하고 있는 것이다.

Git의 장점

1. 소스 코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능하다.

   (브랜치를 통해 개발한 뒤, main 브런치에서 합치는 Merge 방식으로 진행할 수도 있다.)

2. 분산 버전 관리이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있고, 중앙 저장소가 날라가 버려도 원상복구할 수 있다.

3. 팀프로젝트가 아닌 개인 프로젝트일지라도 Git을 통해 버전 관리를 하면 체계적인 개발이 가능해지고, 프로그램이나 패치를 배포하는 과정도 간단해진다.

GITHUB

 

 

Github는 Git Repository를 위한 웹 기반 호스팅 서비스이다. Git이 개인 컴퓨터(로컬)에서 돌아가는 버전관리 시스템이라면, Github는 Github라는 회사에서 서비스하고 있는 서버에 올라간 Git이다. 한마디로 Github는 Git 소프트웨어를 지원하는 일종의 클라우드 서비스이다.

Github는 내 컴퓨터에서 깃 히스토리를 가져와서 (클라우드에 있는) 깃허브 웹사이트에 푸쉬하는 것이다. 그 다음 에디터는 이를 가져올 수 있기 때문에 모든 변화 기록을 볼 수 있는 것이다. 즉 우리 모두의 깃 기록을 깃허브 클라우드에 올릴 수 있는 것이다. 그리고 변화 내용을 올리고, 교환할 수 있게 된다.

저장소 관리 서비스

깃허브는 이러한 작업을 하는 유일한 곳이 아니다 ! Gitlab, Bitbucket 등도 동일한 작업을 수행한다. 이러한 종류의 어플리케이션을 저장소 관리(repository management) 서비스라고 부른다. 하지만 깃허브가 이중 가장 유명하고 이미 깃허브에 매우 많은 오픈소스 프로젝트들이 올라가 있다. 깃허브에 가면 아마존, 페이스북, 구글, 에어비앤비 등 수많은 코드들이 오픈되어 있어 볼 수 있다.

 

 

'CS 정리 > 개발 상식' 카테고리의 다른 글

GoF(Gang of Four) 디자인패턴  (0) 2023.05.06
쓰레드(Thread)란?  (0) 2023.05.02
동기와 비동기, 블록과 논블록  (0) 2023.04.27
쿠키(Cookie)와 세션(Session)  (1) 2023.04.20
HTTP Protocol 의 특징  (0) 2023.04.18
profile

SY 개발일지

@SY 키키

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!