IT Technology/OpenSource

깃(Git) 깃허브(Github) 깃랩(Gitlab)은 무엇인가?

by빵수 2022. 12. 21. 10:05
728x90
반응형

깃(Git) 깃허브(Github) 깃랩(Gitlab)은 무엇인가에 대해서 알아보자

 

 

Git이란 무엇인가?

 

깃(Git0)은 2005년에 리누스 토르발스에 의해 개발된 분산 버전관리 시스템(Distributed Version Control Systems - DVCS)으로, 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 파일에 대한 작업을 조율하는 데 사용된다.

 

쉽게 말해, 여러 명의 개발자하나의 소프트웨어 개발 프로젝트에 참여할 때, 소스 코드를 관리하는데 주로 사용된다.

 

 

버전관리는 왜 필요한가?

 

쉽게 PPT로 발표자료를 만든다고 생각해 보자

 

처음에 발표. ppt라는 제목의 파일을 만들었다가, 내용이 바뀌면 발표_수정. ppt라는 파일을 만들고, 수정에 수정을 거치면 점점 발표_수정_ver2.ppt 파일을 만든다.

 

그리고 마지막에 최정 파일은 가독성을 높이기 위해 발표_최종버전. ppt 파일을 만들었다고 보자

 

위에서 설명한 방법 또한 각 버전의 파일을 복사, 저장, 백업하는 버전 관리 방법 중 하나의 방법이긴 하지만, 어느 것이 갖아 최근의 파일인지 알아보기 어렵고 효율적이지 못한다는 단점을 가지고 있다.

 

또한, 개인 PPT가 아닌 팀 프로젝트로 전체 팀원이 만든 파트별 PPT파일을 하나로 취합하는 과정이라고 생각해 보자.

 

팀원 C가 본인이 업데이트한 파트 부분을 팀원 A가 만든 발표_최종버전. ppt파일이 아닌, 발표_수정_ver2.ppt 파일에 업데이트를 한 경우에는 팀원 A는 다시 글자 크기를 조절하거나 글씨체를 수정하는 번거로운 과정을 거쳐야 한다.

 

팀원이 둘이 아닌 다수인 경우에는 버전 관리를 통해 각 파트별로 만든 파일을 본 버전에 합치는 과정이 매우 복잡해질 것이다.

 

개발 프로젝트에서 이런 버전 관리를 돕는 시스템이 바로 깃(git)이다. 

 

 

깃(git)의 장점

 

  • 인터넷 연결이 되지 않은 곳에서도 개발을 진행하라 수 있으며, 분산 버전관리이기 대문에 중앙 저장소가 삭제되어도 원상복구가 가능하다.
  • 각각의 개발자가 Branch에서 개발을 한 뒤, 본 프로그램에 Merge 하는 방식을 통한 병렬 개발 가능

 

서브버전(Subversion SVN)과 비교
SVN 중앙서버 업로드(직관적) Git 로컬저장소 저장 후 서버 업로드
SVN 동시 업로드시 충돌 가능성 많음 Git Branch와 Merge를 통해 충돌 가능성 낮음
SVN 모든 작업에 네트워크가 사용되어 느림 Git 작업은 로컬에서, 업로드만 네트워크 사용
    Git 히스토리 관리 기능이 잘되어, 관리 용이

 

 

Git 기본 용어

  • Repository 저장소 : 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다. 또한 작업자가 변경한 모든 히스토리를 확인 가능
  • Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점
  • Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치
  • Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업
  • Head :  현재 작업 중인 Branch를 가리킨다.
  • Branch : 가지 또는 분기점. 작업할 때 현재 상태를 복사하여 branch에서 작업을 한 후에 완전하다 싶을 때 Merge 하여 작업을 한다.
  • Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.

 

깃허브(Github)란 무엇인가?

 

깃(Git)을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스.

 

깃 : 휴대폰 속 애니팡(오프라인에서도 플레이가 가능)

깃 허브 : 애니팡 서버(온라인 중앙 서버를 통해 유저 간 하트 주고받기, 기록, 경쟁 외 상호 작용 가능)

깃(Git) 사용 시 서버를 자체적으로 구축하는 것도 가능하지만, Github 서버를 이용하는 편이 편하다.

 

오픈소스의 경우 무료로 서버 제공 : 오픈소스의 성지

2019년도부터 Private 소스들도 무료 업로드가 가능하다.

 

 

깃랩(Gitlab)이란 무엇인가?

 

 Gitlab은 개인 또는 조직이 Git repository의 내부 관리를 제공하는 데 사용할 수 있는 Github로 즉 비공개된 Github이라고 할 수 있다.

 

깃랩(GitLab)의 사용 이유?


GitLab은 중앙 서버에서 Git 저장소를 관리하는 방법이다.
GitLab은 리포지토리 또는 프로젝트를 완벽하게 제어 할 수 있으며, 공개 또는 비공개 여부를 무료로 결정할 수 있다.

 

GitLab과 GitHub, 실무에서의 차이?

 

 

구축

  • 실무에 도입하기 위해서 가장 먼저 고려되는 사항은 아마도 비용
  • GitHub, GitLab 라이센스마다 가격은 다를 것이고 그 기능은 또 다르기 때문에 비용을 통해서 비교되는 것은 자세한 견적을 통해서만 확인할 수 있다.
  • 우리나라 회사 대부분이 설치형(Self-Managed)을 선호하실 텐데요, GitHub의 경우에는 기본적으로 SaaS 형태로 제공되며 유저당 월 $21 비용이 드는 Enterprise를 선택하셔야만 설치 버전을 사용할 수 있다. 
  • 반면, GitLab의 경우에는 모든 Tier에서 SaaS형, 설치형을 선택적으로 사용할 수 있다

 

 

 

 

출처 :

https://yanacoding.tistory.com/4

https://velog.io/@leyuri/Github-%EA%B3%BC-Gitlab-%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

반응형

'IT Technology > OpenSource' 카테고리의 다른 글

GitLab Runner란?  (0) 2022.12.29
STS(SpringSource Tool Suite) 란?  (0) 2022.12.27
CI/CD란 자세하게 알아보기  (0) 2022.12.26
Fluentd란 무엇인가?  (0) 2022.12.09
CI/CD(지속적 통합과 지속적 전달)란 무엇인가?  (0) 2022.11.24