깃(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 |